我有一个奇怪的问题,我的应用程序加载名为“LoginViewController”的NIB文件时发生了问题。该NIB文件中有一堆指向像这样放置在NIB文件中的
现在,在我的VC的
我的问题是:在iPad上,
我尝试过以下方法:
我有一个
请注意,尽管我稍后在iPad上将
UIView
对象的输出口:
运行时,我动态地将这些UIView
对象作为表视图中的标题放置。每个单独的UIView
在此处(除了右侧带有UITableView
的那个)都被设置为IBOutlet。每个名称当然都不同:@property (strong, nonatomic) IBOutlet UIView *connectionInProgressView;
现在,在我的VC的
viewDidLoad
方法中,我遍历这四个不同的视图,并通过写入日志来确保它们存在:NSLog(@"connection in progress view: %@", self.connectionInProgressView);
我的问题是:在iPad上,
self.connectionInProgressView
为nil,在iPhone上不是。无论平台如何,所有其他视图都不为nil并且已经实例化。我在iOS 5.0、5.1和6.1的模拟器上运行此应用程序。我可以在所有iPad模拟器上重现此问题。我的应用程序在iPhone上正常工作并加载带有旋转器的视图,但在iPad上无法加载该视图,因为它为nil!为什么!?我尝试过以下方法:
- 检查我的NIB的文件所有者是否指向正确的视图
self.connectionInProgressView
没有指向任何其他IBOutlet- 检查所有其他子视图是否与有问题的视图以相同的方式连接。它们是。
- 删除
self.connectionInProgressView
,并在删除其所有NIB连接后重新创建它。 - 从视图中删除活动指示器,并仅加载一个带有
UILabel
的视图。没有成功,这不是活动指示器的问题。 - 检查VC中是否有任何可能引用
self.connectionInProgressView
的代码。没有(除了viewDidUnload
中的nil语句)。 - 检查
UINavigationController
和LoginViewController
的AppDelegate的属性属性类型。 - 在AppDelegate上保留
LoginViewController
的副本,尽管这似乎浪费时间并且在结果上没有任何区别。
我有一个
UINavigationController
,它是我的AppDelegate上的一个属性。我在applicationDidFinishLaunchingWithOptions
中分配了该UINavigationController
,将我的VC作为根视图控制器传递给它。我在这时实例化VC。// Create login/start up views
LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
self.loginViewNavigationController = [[UINavigationController alloc] initWithRootViewController:loginViewController];
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
self.loginViewNavigationController.modalPresentationStyle = UIModalPresentationFormSheet;
请注意,尽管我稍后在iPad上将
UINavigationController 作为模态表单表呈现(不确定是否对我的问题有所贡献),但这在iPhone上是可以工作的。
稍后在AppDelegate中,当不同的代理类抛出事件时,我会将这个包含VC的UINavigationController以模态方式呈现。我是这样做的:
if (self.loginViewNavigationController != nil) {
[self.window.rootViewController presentViewController:self.loginViewNavigationController animated:YES completion:nil];
}
我正在疯狂地尝试确定为什么这个特定的视图拖放到我的NIB上并与所有其他视图一样被连接,但在iPad上为nil,而在iPhone上不是。
[编辑1]
在搜索重复问题时,我没有找到以下内容:A few IBOutlets pointing to nil
我不是一个人!
有任何想法吗?