我有一个故事板上有8 UIViewController
个(并且正在计算)。我需要能够按需在任何一对之间移动。从本质上讲,我要做的是模仿UITabBarController
的功能。由于有这么多,我不能只使用UITabBarController
(这会立即解决我的问题),因此我使用UIPopoverController
嵌入式UITableView
来允许用户选择目的地。
当然,我可以在故事板上创建segue,但是为了设置我目前需要的所有segue,我将不得不为我现在拥有的视图控制器创建56个这样的segue,可能还有更多随着事情的发展。
我的一个想法是创建一个“中心”视图控制器,除了将每个“实际”VC的片段保存并且成为每个VC的代表之外,它实际上并没有做任何事情。然后,当我想在VC之间切换时,我首先关闭视图控制器并将目标的segue名称传递回集线器。然后集线器可以立即执行该segue,这可以让我到达我想要的位置。我认为这会起作用,但似乎有点像黑客。
有谁知道如果有更好的方法来实现这一目标?谢谢!
答案 0 :(得分:3)
为什么不为每个人提供一个故事板标识符,然后使用以下标识符获取您需要的任何人:
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"identifier"];
然后通过push或present modally
显示此视图控制器答案 1 :(得分:0)
您可以使用performSegueWithIdentifier:
[self performSegueWithIdentifier:@"myCustomSegue" sender:self];
然后在prepareForSegue:
方法中,配置您需要的内容:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"myCustomSegue"]) {
MyCustomViewController *customViewController = segue.destinationViewController;
customViewController.customAttribute = @"something";
}
}
您还可以使用shouldPerformSegueWithIdentifier:
来控制导航。