Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 管理UINavigationController';视图控制器_Ios - Fatal编程技术网

Ios 管理UINavigationController';视图控制器

Ios 管理UINavigationController';视图控制器,ios,Ios,我试图了解导航控制器管理其“内容控制器”的方式。我知道navigationController可以有一个ViewController的“数组”,我会在这里添加它假设管理的所有控制器吗?如果我需要添加更多或删除它们怎么办?必须有其他方法来正确执行此操作 这就引出了问题的第二部分,如何切换由导航控制器管理的内容控制器。我知道我能做到 [self.navigationController pushViewController:newViewController animated:YES]; 然而,这

我试图了解导航控制器管理其“内容控制器”的方式。我知道navigationController可以有一个ViewController的“数组”,我会在这里添加它假设管理的所有控制器吗?如果我需要添加更多或删除它们怎么办?必须有其他方法来正确执行此操作

这就引出了问题的第二部分,如何切换由导航控制器管理的内容控制器。我知道我能做到

[self.navigationController pushViewController:newViewController animated:YES];
然而,这可能是许多方法之一。我想解释一下导航控制器及其内容控制器和当前看到的控制器之间的这两种特殊关系

我知道navigationController可以有一个 viewcontrollers,这是我要添加所有控制器的地方吗 假设管理

是的,您可以将它们全部添加到那里,但通常在推送时一次添加一个(pushViewController:animated:将新控制器添加到阵列的末尾)

viewControllers数组是NSArray,因此如果要添加或删除控制器,则需要创建可变副本,然后使用setViewControllers:并将可变数组传递给它以创建新的控制器列表

how can I switch the content controller managed by the navigation controller?
有几种方法可以做到这一点。您可以使用pop方法之一返回一个、返回到特定控制器或返回到根视图控制器。当前看到的控制器是topViewController属性中的控制器

所有这些方法都在UINavigationController类参考中清楚地列出。如果有一个具体的问题你不明白,那就问问它

how can I switch the content controller managed by the navigation controller?