例如在FirstViewController中,我想推送SecondViewController,我在FirstViewController中有一个navigationController,我可以直接将SecondViewController推送到它吗?
除非SecondViewController有另一组导航层次结构,否则只为它创建另一个navigationController才有意义?
答案 0 :(得分:1)
FirstViewController中没有导航控制器; 它位于导航控制器中。
导航控制器是一个容器。您在顶部看到的导航栏属于导航控制器。下面的内容属于当前位于导航堆栈顶部的视图控制器(工具栏除外,如果您正在显示)。
您实际上无法将另一个导航控制器推入堆栈 - 这会引发异常。因此,除非您拥有标签式应用程序结构,否则大多数应用程序将只有一个导航控制器。
答案 1 :(得分:0)
右键单击导航控制器的主体,将蓝线拖到FirstViewController。选择" Root View Controller"弹出窗口。
右键单击FirstViewController的主体并将其拖到SecondViewController,选择" push"。
单击第一个和第二个视图控制器之间的线,这是一个Segue。给segue一个unqiue标识符,如" firstToSecondSegue"。
在FirstVewController.m中,您可以通过编程方式将SecondViewController推送到导航堆栈
[self performSegueWithIdentifier:@"firstToSecondSegue" sender:self];