我在使用 xibs 而不是 Storyboard启动 iOS 应用程序时遇到了一些麻烦。问题是我得到一个黑屏并且没有调用第一个 View Controller (向 viewDidLoad
方法添加了断点)。
在应用程序委托(delegate) header 中我声明了这一点:
@property (strong, nonatomic) UIWindow window;
@property (strong, nonatomic) ViewController *viewController;
在 didFinishLaunchingWithOptions
方法中我有这个实现:
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
navController.navigationBarHidden = YES;
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
查看一些论坛我发现我应该分配窗口所以我将其添加为函数的第一行
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
问题是,当我这样做时,应用程序在从 didFinishLaunchingWithOptions
方法返回后崩溃(没有任何痕迹的 SIGABRT)。
我还尝试使 navController
成为一个属性,并实例化一个默认的 UIViewController
类来初始化相同的 xib
我做错了什么?
感谢和问候
最佳答案
希望对你有帮助:
删除 View Controller 和 Storyboard文件以及新的 viewController.h、viewController.h.m、viewController.xib 文件。
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
@synthesize viewCOntrollerobj;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewCOntrollerobj = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewCOntrollerobj];
//navController.navigationBarHidden = YES;
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
}
关于ios - 在没有 Storyboard的情况下启动 ios 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804006/