【问题标题】:UINavigationController embedded in container view from Storyboard won't push UIViewController从 Storyboard 嵌入到容器视图中的 UINavigationController 不会推送 UIViewController
【发布时间】:2016-06-11 07:10:37
【问题描述】:

在我的容器类故事板中,我创建了一个全屏容器视图,其中包含一个附加到 UINavigationController 的嵌入 segue。我正在尝试通过以如下方式以编程方式推送 viewController 来测试这一点:

UIViewController* test = [[UIViewController alloc] init];
test.view.backgroundColor = [UIColor redColor];
UINavigationController* navC = [[RootController mainStoryBoard] instantiateViewControllerWithIdentifier:@"containerNav"];
[navC pushViewController:test animated:NO];

navC 已成功初始化为导航控制器,但 pushViewController 调用似乎什么也没做。我仍然只是在屏幕上看到一个空的导航控制器(带有黑色视图的默认导航栏)。我还尝试了使用 setViewControllers 方法进行的类似测试,但也失败了。导航控制器不应该嵌入到容器视图中吗?

【问题讨论】:

    标签: ios objective-c iphone uinavigationcontroller storyboard


    【解决方案1】:

    UINavigationController 需要一个 UIViewController 在它的堆栈底部,从它第一次创建时开始,(它不能“弹出”那个)。换句话说,它不能从一个空堆栈开始,您应该在 xib/storyboard 中添加/嵌入一个 viewController,然后我希望它可以与您在这里所做的事情一起工作

    【讨论】:

      【解决方案2】:

      我认为您可能只需要在导航控制器上设置 viewControllers 属性,如下所示:

      [navC setViewControllers(@[test] animated: NO]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-23
        • 2012-09-15
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        相关资源
        最近更新 更多