1
A
回答
3
如果你使用接口生成器:
在SupportingFiles下,在-info.plist中,查找名为“Main nib文件基本名称”的键。改变你想要的XIB它加载第一
您也可以采取进入了plist中的完全是一种在main.m文件给它你的appDelegate的名字:
int retVal = UIApplicationMain(argc, argv, nil, @"HelloViewAppDelegate");
然后在你的appDelegate,你可以根据您的代码和逻辑手动加载您的第一个视图控制器。就我个人而言,我更喜欢这一点,因为它更清晰 - 这是我的委托和代码来加载它。它没有我需要记住的IB中的所有绑定。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
CGRect screenBounds = [[UIScreen mainScreen] applicationFrame];
CGRect windowBounds = screenBounds;
windowBounds.origin.y = 0.0;
// init window
[self setWindow: [[UIWindow alloc] initWithFrame:screenBounds]];
// init view controller
_mainViewController = [[MainViewController alloc] init];
[[self window] addSubview:[_mainViewController view]];
[self.window makeKeyAndVisible];
return YES;
}
编辑:
下面回答您的评论。你粘贴了这个无效代码:
// init view controller
ViewController = [[ViewController alloc] init];
[[self window] addSubview:[ViewController view]];
这是无效的。你需要一个实例变量名称。通过将它称为“ViewController”来尝试调用类成员变量。如果你的类被称为视图控制器则应该是:
// notice the instance myviewController is of type ViewController
ViewController *myViewController = [[ViewController alloc] init];
// notice calling view against instance (myViewController)
[[self window] addSubview:[myViewController view]];
在这一点上,如果它不是编译你需要编辑你的问题,并粘贴您的main.m文件和的appDelegate完全一样是进入正题。
0
的的MainWindow.xib文件仅仅是提供应用程序的一个UIWindow壳。虽然你可以把一个UIViewController在MainWindow.xib中,你也可以有你的应用程序代理未连接UIViewController
出口,并挑选在运行时加载该笔尖在application:didFinishLaunchingWithOptions:
方法,如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)options {
if (case1)
self.viewController = [[[MyViewController1 alloc] initWithNibName:nil bundle:nil] autorelease];
else if (case 2)
self.viewController = [[[MyViewController2 alloc] initWithNibName:nil bundle:nil] autorelease];
else
self.viewController = [[[MyViewController2 alloc] initWithNibName:nil bundle:nil] autorelease];
[window addSubview:self.viewController.view];
[window makeKeyAndVisible];
return YES;
}
相关问题
- 1. 删除故事板并使用.xib启动应用程序
- 2. 在TabBar应用程序模板中启动应用程序之后加载不同的XIB文件
- 3. 使用不同的资源文件启动android应用程序
- 4. 在Mac应用程序中启动应用程序时,XIB未打开
- 5. 应用程序不启动?
- 6. 应用程序不启动
- 7. 使用菜单从不同的应用程序启动不同的故事板
- 8. 如何启动与我的应用程序不同的其他应用程序
- 9. 在我的应用程序(容器)内启动不同的应用程序
- 10. 更改XIB在应用程序启动时查看
- 11. 难以通过应用程序启动应用程序(同时)
- 12. 在iOS应用程序中使用xib导航应用程序
- 13. 在应用程序启动时启动应用程序类
- 14. 从应用程序启动“启动器应用程序抽屉”?
- 15. 如何以不同用户的身份启动应用程序?
- 16. QProcess不启动Windows应用程序下的Java应用程序
- 17. 应用程序启动不同的活动
- 18. 使用不同签署密钥从两个应用程序启动应用程序的活动/服务
- 19. 新活动 - 应用程序不启动
- 20. 使用URL方案启动不活动的应用程序
- 21. 在iOS应用程序中显示不同的XIB/NIB
- 22. 使用应用程序委托来启动iOS应用程序
- 23. 使用意图启动应用程序
- 24. 使用powershell启动windows应用程序
- 25. 使用命令启动应用程序
- 26. 使用rc0启动应用程序
- 27. 使用Appium启动应用程序
- 28. 使用systemd启动Qt应用程序
- 29. 使用URL启动iOS应用程序
- 30. 使用nodemon启动locomotive.js应用程序
由于未捕获的异常'NSUnknownKeyException',原因:'[ setValue:forUndefinedKey:]终止应用程序:此类不是关键值编码兼容的关键视图。 ***第一次抛出调用堆栈: - 我得到这个错误信息 –
@byranmac ViewController是我想重写和开始。 //初始化视图控制器 ViewController = [[ViewController alloc] init]; [[self window] addSubview:[ViewController view]]; - 我收到错误消息'Expected identifier or'(' –
我假设ViewController是从uiviewcontroller继承的类吗?您还需要在应用程序委托中导入该标头。如果您想共享示例项目或更多代码,我可以 – bryanmac