从导航控制器推送时,查看未加载xib文件

时间:2012-12-22 13:54:43

标签: iphone xcode

我一直在努力解决这个问题,在网上筛选解决方案,但没有设法到达那里,所以我觉得是时候问你精彩的人了。我有一个标签栏应用程序,我在其中尝试使用包含表视图(TableViewController)的导航控制器来切换到不同的视图,具体取决于按下的单元格。

当触摸表格视图中的单元格时,我的SecondViewController被加载(这是通过在viewDidLoad()方法中对背景着色来检查的,但是界面(XIB)是没有加载,因此窗口是空白的(或在我的背景测试的情况下着色)。窗口(SecondViewController)应该包含UIScrollerView,它在直接访问视图时有效。我应该提到所有视图控制器都包含在一个XIB文件中,XIB文件包含标签栏控制器和App Delegate所需的空白窗口(窗口和tabBarController

这是我从TableViewController.mrootViewController navigationController)切换视图的方法

SecondViewController *viewSecond = [SecondViewController alloc];
self.secondViewController = viewSecond;
[self.navigationController pushViewController:self.secondViewController animated:YES];

这是applicationDidFinishLaunchingWithOptions()

中的appDelegate.m
// Set the tab bar controller as the window's root view controller and display.
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
tabBarController.moreNavigationController.navigationBar.hidden = YES;  
return YES;

这实际上是一个旧项目的后续工作,所以我现在确定为什么XIB中需要空白窗口(如果这与问题有关),因为它不需要模板标签栏应用程序。我刚刚开始iOS开发,所以如果我在任何地方都模糊,我会道歉。任何帮助都将深表感谢。

1 个答案:

答案 0 :(得分:2)

TableViewController.m,您错过init SecondViewController alloc。只是调用SecondViewController *viewSecond = [SecondViewController alloc];不会从笔尖加载。

所以改变SecondViewController *viewSecond = [[SecondViewController alloc] init];
进入SecondViewController *viewSecond = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];

{{1}}