如何从任何视图导航到初始视图控制器

时间:2014-07-03 21:20:24

标签: ios objective-c xcode segue

我想从故事板中的几乎任何View Controller导航到初始视图。我不想手动为每个视图创建一个segue到初始视图。是否有一个很好的方便的方法在一行中执行此操作,或者可能是我的其他VC可以继承的方法?

3 个答案:

答案 0 :(得分:3)

执行此操作的最佳方式(在我看来)将使用UINavigation控制器。

使UINavigation Controller成为故事板的根视图控制器,然后将其连接到您的"实际"根视图控制器。

然后,在任何使用导航控制器推送的视图控制器中,您可以执行以下操作:

[self.navigationController popToRootViewControllerAnimated:YES]; // or NO

答案 1 :(得分:0)

您可以在AppDelegate中保留对所需初始/根视图控制器的强引用,然后在其中设置一个从任何地方调用的方法,以将当前视图控制器切换到初始控制器。

您可以在AppDelegate.h文件中执行以下操作:

@property (strong, nonatomic) MyInitialViewController *initialViewController
- (void)switchToInitialViewController;

在AppDelegate.m中你可以这样做:

- (void)switchToInitialViewController
{
    self.window.rootViewCotroller = self.initialViewController;
}

然后你可以用任何方法做到这一点:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate switchToInitialViewController];

希望这有助于帮助。 :)

答案 2 :(得分:0)

为什么不去找

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if([segue.identifer isEqualToString:@"identifier"]) {
      // Put your code here....
    }
}

每个ViewController都有这种方法,你可以移动到其他控制器或你的初始控制器。如果您正在使用NavigationController,那么您可以选择 @Eric回答。