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