关于呈现从 XIB 文件获取其界面的视图,有一些基本的东西我不理解。
我的应用程序的根视图控制器是一个 UITabBarController。选项卡栏选项之一呈现 UINavigationController 控制的视图。在该视图的导航栏中,我有一个用于添加新项目的加号 (+) 按钮。我想将 AddItem 视图呈现为模式视图,它应该从 AddItemView.xib 文件中获取其接口。该 XIB 文件中有一个导航控制器。
但是,导航栏不会出现。这是单击加号按钮时调用的函数:
- (void)showNewView:(UIViewController *)viewController
{
AddItemViewController *vc = [[AddItemViewController alloc] initWithNibName:@"AddItemViewController" bundle:nil];
//viewController is the UIViewController on which the plus button was tapped
[viewController.navigationController presentModalViewController:vc animated:NO];
}
我得到的只是一个白屏。我需要在 viewDidLoad 中为 AddItemViewController 做些什么吗?我是否需要将某些东西连接到 XIB 中的 UINavigationController 实例?
所有这些似乎只适用于 MainWindow.xib 文件中的选项卡栏。UITabBarController 在它下面有一个 UINavigationController,它又在它下面有一个 UITableViewController 的子类,它又包含 UITableView,这是您在点击选项卡栏中的相应选项时在屏幕上看到的初始内容。所以我不确定为什么仅仅将这些东西放在 IB 中不会导致同样的事情发生。
正如我一开始所说,我确信这个问题源于对 XIB 文件、它们的视图控制器和调用它们的视图控制器之间的关系的根本误解。因此,虽然我确实想解决这个特定问题,但我希望得到一个可以解决这种更广泛误解的答案。