gpt4 book ai didi

iPhone 6.0模拟器: Application windows are expected to have a root view controller at the end of application launch

转载 作者:行者123 更新时间:2023-12-03 20:06:23 27 4
gpt4 key购买 nike

当我在 iPhone 6.0 模拟器中运行我的应用程序时,它显示

应用程序窗口预计在应用程序启动结束时有一个 Root View Controller

在其他模拟器中它不存在。为什么?这个错误是什么意思?

我的应用程序的导航流程如下:首先我的应用程序应该显示登录屏幕。进入应用程序后,我需要使用选项卡栏显示一个 View 。在该 View 中会有很多按钮,当我们单击这些按钮时,它应该显示相应的 View Controller ,而不带选项卡栏。这就是我将这些导航 Controller 添加到窗口的原因。

这是我的 didFinishLaunchingWithOptions 代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.tabBarController = [[UITabBarController alloc] init];
self.window.rootViewController = self.tabBarController;

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor=[UIColor blackColor];

[application setStatusBarStyle:UIStatusBarStyleBlackOpaque];

Object1 = [[Class1 alloc] initWithNibName:@"Class1" bundle:nil];
tempNav=[[UINavigationController alloc]initWithRootViewController:Object1];
tempNav.navigationBar.hidden=YES;
tempNav.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
self.window addSubview:tempNav.view];

LoginObj = [[Login alloc] initWithNibName:@"Login" bundle:nil];
navController=[[UINavigationController alloc]initWithRootViewController:LoginObj];
navController.navigationBar.hidden=YES;
navController.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController.view];

Obj2 = [[Class2 alloc] initWithNibName:@"Class2" bundle:nil];
navController1=[[UINavigationController alloc]initWithRootViewController:Obj2];
navController1.navigationBar.hidden=YES;
navController1.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController1.view];

Obj3 = [[Class3 alloc] initWithNibName:@"Class3" bundle:nil];
navController2=[[UINavigationController alloc]initWithRootViewController:Obj3];
navController2.navigationBar.hidden=YES;
navController2.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController2.view];

Obj4 = [[Class4 alloc] initWithNibName:@"Class4" bundle:nil];
navController3=[[UINavigationController alloc]initWithRootViewController:Obj4];
navController3.navigationBar.hidden=YES;
navController3.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController3.view];

[self.window makeKeyAndVisible];

return YES;
}

最佳答案

正如 wattson12 所说,您需要在应用程序委托(delegate)中执行以下操作:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
self.window.rootViewController = self.mainViewController; // you need this line!
[self.window makeKeyAndVisible];
return YES;
}

如果您没有显式设置 UIWindow rootViewController property ,您将看到此消息。

如果您使用 Xcode 4.5 创建新项目,则模板应用程序委托(delegate)中应包含此代码。如果您使用的是在早期版本的 Xcode 中创建的项目,则该行可能会丢失,并且您会收到警告消息。

关于iPhone 6.0模拟器: Application windows are expected to have a root view controller at the end of application launch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12723966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com