Xcode App 有时不会加载视图
Posted
技术标签:
【中文标题】Xcode App 有时不会加载视图【英文标题】:Xcode App won't load view sometimes 【发布时间】:2016-04-26 17:07:39 【问题描述】:我的项目在没有情节提要的情况下运行,所以我在 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 上打印(空),所以我假设 xib 没有正确加载。
SYLoginController
是一个UIViewController
,并且相关的xib 拥有一个其FilesOwner 设置为SYLoginController
的UIView。我真的不明白为什么它只适用于这个特定的设备。我也试过[[SYTabBarController alloc] initWithNibName:@"SYLoginController" bundle:nil]
,这也行不通...
【问题讨论】:
在运行项目之前,您是否尝试过清理(Cmd-K)或卸载真实设备中的应用程序?它也不应该在真实设备上工作。 我尝试清理项目,我尝试清理派生数据,我也多次卸载该应用程序。一部 iPhone 工作,另一部不工作,模拟器也不工作。 【参考方案1】:您是否尝试将其包裹在导航控制器周围?
SYLoginController *syVC = [[SYLoginController alloc]initWithNibName:@"SYLoginController" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] syVC];
self.window.rootViewController = nav;
还要再次检查自定义类是否在 XIB 文件中设置为 SYLoginController。并且视图连接到文件所有者。
【讨论】:
我试过了,现在它是一个黑屏的导航控制器(你可以看到导航栏)...... 是的,您可以隐藏导航栏。但奇怪...检查XIB文件。打印出视图帧大小。给 SyLoginController 一个其他的背景色。 我可以使用self.window.backgroundColor来设置view的backgroundcolor,但是好像xib没有加载。奇怪的是,在我的 iPhone 上它可以工作。以上是关于Xcode App 有时不会加载视图的主要内容,如果未能解决你的问题,请参考以下文章
TableViewController 在搜索时填充,但不会加载初始视图