我的项目没有故事板,所以我在AppDelegate中加载我的视图:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;
self.window.rootViewController = [[SYLoginController alloc] init];
[self.window makeKeyAndVisible];
return YES;
}
它曾经在iPhone 6 sim 9.3上工作但现在,在所有模拟器上它只显示黑屏。但在我的iPhone 6设备上它可以工作。而在另一部iPhone 6上它也显示黑屏。这两款iPhone实际上几乎是同时购买的16GB iPhone 6。
在SYLoginController
s viewDiDLoad
我记录其中一个按钮的文字。只在我的设备上打印文本,在所有模拟器和它打印的其他iPhone上打印(null),所以我假设xib没有正确加载。
SYLoginController
是UIViewController
,相关的xib包含UIView,其FilesOwner设置为SYLoginController
。我真的不明白为什么它只适用于这个特定的设备。我也试过[[SYTabBarController alloc] initWithNibName:@"SYLoginController" bundle:nil]
,这也行不通......
答案 0 :(得分:0)
您是否尝试将其包裹在导航控制器周围?
SYLoginController *syVC = [[SYLoginController alloc]initWithNibName:@"SYLoginController" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] syVC];
self.window.rootViewController = nav;
再次检查是否在XIB-File中将Custom Class设置为SYLoginController。并且视图已连接到文件所有者。