管理UINavigationController的viewcontrollers

时间:2014-04-03 23:31:34

标签: ios

我试图理解导航控制器管理其内容控制器的方式。我知道navigationController可以有一个'数组' viewcontrollers,我会添加它假设管理的所有控制器吗?如果我需要添加更多或删除它们怎么办?必须有其他方法来做到这一点吗?

这让我想到了问题的第二部分,我如何切换导航控制器管理的内容控制器。我明白我能做到

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

然而,这可能是众多方法中的一种。我想解释导航控制器与其内容控制器和当前看到的控制器之间的这两种特殊关系。

1 个答案:

答案 0 :(得分:0)

  

据我所知,navigationController可以有一个'数组'的   viewcontrollers,这是我要添加所有控制器的地方   假设管理?

是的,您可以在那里添加它们,但通常在您执行推送时一次添加一个(pushViewController:animated:将新控制器添加到数组的末尾)。

What if I need to add more or remove them?

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

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

有几种方法可以做到这一点。您可以使用其中一种pop方法返回一个,返回到特定控制器,或返回到根视图控制器。当前看到的控制器是topViewController属性中的控制器。

所有这些方法都清楚地列在UINavigationController类引用中。如果您不了解特定的一个,那就问一下。