iOS导航控制器不会移动到下一个视图控制器

时间:2013-12-18 08:15:59

标签: ios objective-c uinavigationcontroller uitabbarcontroller

我已经解决了这个问题。我只是发布我的结果,因为它可以帮助其他人。

我有一个UITabBarControllerUINavigationControllerUIViewController被推到UINavigationController。我曾经在我的UITabBarController上只有2个标签,但现在我有6个。所以我有一个“更多”按钮,必须按下才能看到其他标签。每当我尝试在“更多”下的任何标签中推送UIViewController时,我的应用都不会切换到UIViewController。 viewDidAppear函数不会被调用或任何东西。

这是我的代码:

if (newViewController == 0)
    newViewController = [[NewViewViewController alloc] initWithNibName: @"NewViewControllerXIB" bundle: [NSBundle mainBundle]];

TestAppDelegate *appDelegate = (TestAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.navController pushViewController: newViewController animated: true];

1 个答案:

答案 0 :(得分:0)

原来,如果您使用的是UITabBarController并且您的控制器有很多标签,则会创建一个“更多”按钮,并且您的控制器将被置于预制UIMoreNavigationController中。因此,您需要使用为您创建的UIMoreNavigationController,而不是获取共享应用程序委托所使用的导航控制器。所以你想这样做:

if (newViewController == 0)
    newViewController = [[NewViewViewController alloc] initWithNibName: @"NewViewControllerXIB" bundle: [NSBundle mainBundle]];

[self.navigationController pushViewController: newViewController animated: YES];

我将开始将我的所有视图控制器推送到导航控制器,它从现在开始是分开的。经验教训。