标签: uiwindow

UIWindow和UIView addSubview问题

addSubview方法是否实际将视图加载到应用程序中?我问的原因是因为我的申请中有两个两个观点.应用程序委托将两个视图添加为子视图,然后预先显示其中一个视图.现在,我在每个视图的每个viewDidLoad方法中都有一个print语句.当我运行应用程序时,应用程序委托将视图作为子视图加载,并且在加载每个视图时,我实际上看到控制台打印出我在每个viewDidLoad方法中放置的语句.这应该是这样做的吗?

objective-c uiview viewdidload uiwindow

1
推荐指数
1
解决办法
4813
查看次数

iPhone应用程序中的UIWindow实例数

有人可以确认我在任何时候任何iPhone应用程序中只能有一个UIWindow实例吗?

更新: 我在此链接中找到了以下信息。据此,可以有许多窗口。

另外,UIApplication对象维护了当前在应用程序中打开的所有窗口的列表(UIWindow对象),因此通过这些窗口,它可以检索应用程序的任何UIView对象。

iphone uiwindow

1
推荐指数
1
解决办法
1299
查看次数

在ios上启动应用程序时在视图中进行签名的最佳做法

我会问你在ios上查看标志的最佳做法是什么.只有在获取这些文本字段后,才能启动应用程序内容.我有两个窗户吗?Apple建议仅​​使用两个窗口进行外部显示.如果这是一个好习惯,我该如何构建它?

提前致谢.

iphone uiview launching-application uiwindow ios

1
推荐指数
1
解决办法
662
查看次数

当applicationFrame高度为460时,为什么窗口480的高度为?

我在AppDelegate类中创建了一个TabBar VC,通过[[UIScreen mainScreen] bounds]设置窗口框架.由于我显示状态栏,因此高度应为460,但它似乎为480.如果我手动将高度设置为460,则会在标签的底部切断触摸识别.下面是代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIColor *brownNavBarColor = [[UIColor alloc] initWithRed:0.78f green:0.56f blue:0.06f alpha:1.0f];
[application setStatusBarHidden:NO];

CGRect windowRect = [[UIScreen mainScreen] bounds];
self.window = [[UIWindow alloc] initWithFrame:windowRect];

CGRect appFrame = [[UIScreen mainScreen] applicationFrame];

NSLog(@" appFrame %f", appFrame.origin.y);
NSLog(@" appFrame %f", appFrame.size.height);

NSLog(@" window.frame %f", self.window.frame.origin.y);
NSLog(@" window.frame %f", self.window.frame.size.height);

NSLog(@" window.bounds %f", self.window.bounds.origin.y);
NSLog(@" window.bounds %f", self.window.bounds.size.height);

[self.window makeKeyAndVisible];

self.ingredientTabVC2 = [[NewIngredientViewController alloc] initWithNibName:nil bundle:NULL];
self.ingredientNC2 = [[UINavigationController alloc] initWithRootViewController:self.ingredientTabVC2];
[self.ingredientNC2.navigationBar setTintColor:brownNavBarColor];

self.ingredientTabVC3 = [[IngredientTabViewController …
Run Code Online (Sandbox Code Playgroud)

objective-c uiwindow ios appdelegate

1
推荐指数
1
解决办法
2080
查看次数

从 ViewController 调用应用程序时如何设置应用程序的 UIWindow 颜色

在 App 委托中,可以设置应用程序的UIWindow颜色,如代码所示。

但是,当尝试在 中将应用程序的UIWindow颜色设置为不同的颜色时ViewController,例如调用 将self.window?.backgroundColor = UIColor.blueColor()被忽略。不会发生错误,但也不会发生颜色变化。

题:

1 - 在ViewController? 中调用应用程序时如何设置应用程序的窗口颜色?注意:我不是要更改视图背景颜色,而是要更改视图UIWindow后面的颜色。

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        self.window?.backgroundColor = UIColor.redColor()

        return true

    }

}
Run Code Online (Sandbox Code Playgroud)

uiwindow ios swift

1
推荐指数
1
解决办法
4073
查看次数

按钮单击事件(UIButton TouchUpInside操作)不起作用 - IOS/Swift

在我的应用程序的故事板中有一个UIViewController(子),它加载到另一个UIViewController(父)中.

这是我在父视图控制器中使用的代码,用于在父视图控制器(包括导航栏)中的所有子视图上加载子视图控制器.

let window: UIView? = UIApplication.sharedApplication().keyWindow;

let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil);
let viewController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("CPBackConfirmMessageUIView");

window?.addSubview(viewController.view); 
Run Code Online (Sandbox Code Playgroud)

这就是他们在我的故事板中的样子

在此输入图像描述

这是它在旁边父视图中加载子视图控制器的方式

在此输入图像描述

在子视图控制器内部,您可以看到两个按钮.我已将(TouchUpInside)操作添加到子视图的控制器类中的那些按钮,但它无法正常工作.但ViewDidLoad方法工作正常(我添加了一些动画,他们正在工作).

有人能告诉我如何在这些按钮上写动作并让它们工作或让我知道我是否在这里做错了什么.任何帮助将受到高度赞赏.

编辑: 这就是我写IBAction的方式

@IBAction func abc(sender: AnyObject) {    
    print("Worked");
}
Run Code Online (Sandbox Code Playgroud)

uibutton uiviewcontroller uiwindow ios swift

1
推荐指数
1
解决办法
4427
查看次数

具有警报级别的 UIWindow 位于状态栏级别的顶部

我有一个以模态方式呈现视图控制器的应用程序,我在不同的 UIWindows 中有一个标准的 ViewController 和一个 UIAlertController,主窗口具有正常的 UIWindowLevel 优先级,警报窗口具有 Alert UIWindowLevel 优先级,因为我希望始终将警报放在任何 ViewController 之上我在主 UIWindow 上以模态呈现(AppDelegates 参考)。我还有另一个具有状态栏优先级的 UIWindow,当我希望确保在所有内容之上都有一个不同的 ViewController 时。因此,当我使用 Alert UIWIndowLevel 优先级显示 UIWindow 并且在显示具有状态栏 UIWIndowLevel 的不同窗口之后,警报窗口中的警报显示在状态栏窗口的顶部。有什么原因吗?

我为测试而构建的示例应用程序屏幕截图

cocoa-touch uiwindow ios

1
推荐指数
1
解决办法
5138
查看次数

第二次添加时,视图在UIWindow上不可见

我正在使用此代码

UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0];
UIView * videoView = [[window subviews] lastObject];
[videoView addSubview:viewFullScreenToolbar];
Run Code Online (Sandbox Code Playgroud)

在最顶层视图上添加视图以在全屏播放视频.按下全屏按钮时,此代码将执行并显示全屏视频.但是当全屏关闭然后再次按下时,尽管视频在全屏播放正确,但viewFullScreenToolbar仍然不可见.此外,问题仅在横向模式下,在纵向模式下效果很好.

iphone uiwindow ios

0
推荐指数
1
解决办法
2532
查看次数

为什么我不能让我的新UIWindow显示在状态栏的顶部?

我只是想UIWindow暂时将我置于状态栏上方以达到警示目的.

代码很简单:

    let newwindow = UIWindow(frame: UIScreen.mainScreen().bounds)
    newwindow.hidden = false
    newwindow.backgroundColor = UIColor.greenColor()
    newwindow.windowLevel = UIWindowLevelStatusBar + 1.0
    newwindow.makeKeyAndVisible()
    newwindow.hidden = false
Run Code Online (Sandbox Code Playgroud)

但是,当我把它放在viewDidAppear我的根视图控制器中时,我从未看到过这个窗口.

我究竟做错了什么?

cocoa-touch uiwindow ios swift ios9

0
推荐指数
1
解决办法
490
查看次数

'keyWindow' 已弃用:首先在 iOS 13.0 中的 Objective-C 中弃用

这是我的简单按钮操作,用于显示 XIB 文件,该文件实际上是 Objective-C 中的条形码扫描仪。

 - (IBAction)startCamera:(id)sender {
    BarcodeVC * controller = [[BarcodeVC alloc] initWithNibName:@"BarcodeVC" bundle:[NSBundle mainBundle]];
    
    //[self presentViewController:controller animated:YES completion:nil];
     UIWindow * currentwindow = [[UIApplication sharedApplication] keyWindow];
     [currentwindow.rootViewController presentViewController:controller animated:YES completion:nil];
  }
Run Code Online (Sandbox Code Playgroud)

但不幸的是,一个警告来了:

keyWindow已弃用:首先在 iOS 13.0 中弃用

我知道iOS 13支持多场景,但是Objective-C有没有办法解决这个问题?我见过 Swift 版本,但使用 Objective-C 却没有成功。

objective-c uiwindow ios ios13 uiscenedelegate

-1
推荐指数
1
解决办法
7690
查看次数