在UINavigationController中运行UIViewController作为UISplitViewController的第二个视图

时间:2013-08-10 18:41:02

标签: ios ipad uiviewcontroller uinavigationcontroller uisplitviewcontroller

我试图从它访问视图控制器的导航控制器时遇到问题,总是以nill的形式返回给我,尽管它显示在导航控制器中。 这就是我所拥有的(我有一个拆分视图控制器,作为主控和控制器(内部导航控制器)的选项卡控制器显示为详细信息):

FirstDetailViewController *fdvc = [[FirstDetailViewController alloc] initWithNibName:@"FirstDetailViewController" bundle:nil];
UINavigationController *fdvcNav = [[UINavigationController alloc] initWithRootViewController:fdvc];

NSArray *ipadVCs = [[NSArray alloc] initWithObjects:tabController, fdvcNav, nil];
UISplitViewController *splitvc = [[UISplitViewController alloc] initWithNibName:nil bundle:nil];
[splitvc setViewControllers:ipadVCs];
[[splitvc view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"splitViewControllerBG"]]];
[splitvc setDelegate:fdvc];

[[self window] setRootViewController:splitvc];
[[self window] makeKeyAndVisible];

但是当我尝试使用[self navigationController]从ViewDidLoad中的fdvc视图控制器访问导航控制器时,它总是给我(Null)。 谢谢!

1 个答案:

答案 0 :(得分:1)

我修好了。原来,我必须将我的代码从ViewDidLoad方法移动到ViewDidAppear并且它运行良好。

viewDidLoad在navigationController属性更新之前被调用,这是我的错误。