如何将UINavigationController的增加呈现为模态的的UIViewControlle

2019-10-17 18:28发布

我在我的应用程序的替代流。 该流程开始于我的firstViewController,然后在此查看呼叫我secondViewController是这样的:

- (IBAction)PressButton:(id)sender {

    SecondViewController *second = [[SecondViewController alloc] init];
    second.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    UINavigationController *nav = self.navigationController;
    [nav presentViewController:second animated:YES completion:nil];                              
}

在我secondViewController我希望把我的thirdViewController。 但它不工作我尝试这样的方法:

- (IBAction)pressButton:(id)sender {

   ThirdViewController *tvc = [[ThirdViewController alloc] init];
   UINavigationController *nav = self.navigationController;
   [nav pushViewController:tvc animated:YES];

}

当我按下的secondViewController没有任何按钮发生。

我做错了吗?

我正在使用:

  • OSX 10.8.2
  • 的Xcode 4.6
  • 的iOS 6.1

Answer 1:

你必须出示导航控制器模态,和具有第二视图,该导航控制器的根。 以及从拥有视图不其父导航控制器调用presentViewController。

- (IBAction)PressButton:(id)sender {
        SecondViewController *second = [[SecondViewController alloc] init];
        second.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:second];
        [self presentViewController:navigationController animated:YES completion:nil];    
    }


Answer 2:

相反,仅仅呈现第二视图控制器,一定要提出一个额外的导航控制器。

SecondViewController *secondViewController = [[SecondViewController alloc] init];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:secondViewController];
[[self navigationController] presentViewController:navigationController animated:YES completion:nil];


Answer 3:

如果使用的是故事板只需要点击源视图厦门国际银行,按Ctrl +拖动到目标(创建Segue公司),从弹出menu.Click选择模式新创建的连接上。 为它添加一个名称,然后在源视图控制器[self performSegueWithIdentifier:@"Segue Name" sender:self];



Answer 4:

如果你试图让一个按钮来引导您到不同的页面模态,你可以去到故事板或XIB文件。 从按键到你想去的视图控制器控制点击。 然后在弹出菜单会给你的,你要使用什么类型的插座的选项。 希望这可以帮助



文章来源: How to add an UINavigationController to an UIViewController presented as Modal