从故事板中的UITabviewController导航回ViewController

时间:2015-02-20 06:09:24

标签: ios objective-c uiviewcontroller uinavigationcontroller uitabbarcontroller

我的层次结构

 UINavigationController -> UIViewController 
 -> UITabViewController 
     -> ViewController1                                                      
     -> ViewController2
     -> ViewController3

我想从

导航回来
ViewController1 -> UIViewController.

任何人都知道请解决这个问题。

4 个答案:

答案 0 :(得分:1)

“放松”是您的答案。

enter image description here

创建一个IBAction方法来展开segue。在要在其中展开的控制器中定义此方法(您想要跳转到主控制器的控制器)。

- (IBAction) prepareForUnwind:(UIStoryboardSegue *)segue {
}

现在在Storyboard中使用此方法连接后退按钮(在本例中为“Home”按钮)。连接展开动作 - >按住Ctrl键并拖动到控制器的“退出”按钮。

enter image description here

注意:如果您使用的Xcode版本小于6.0,则“退出”插座位于视图控制器的底部。

enter image description here

这将导航回根导航控制器。那是UIViewController。

为了进一步分离,您可以为unwind segue提供一个标识符,并为退出到最后一个控制器执行不同的操作。

从左侧列表中选择标识符,并在“属性”检查器中提供标识符。

enter image description here enter image description here

关键点:

  1. 在将要退出的控制器中写入展开方法。
  2. 只有在定义展开方法后,才能连接到“退出”委托。
  3. Ctrl +从控件拖动到退出符号以选择您希望此控件执行的展开segue
  4. 展开的segues显示在每个连接的Exit符号下方
  5. 您可以为这些展开segue提供标识符,以执行不同的活动。

答案 1 :(得分:0)

您可以使用

    [navigationController popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>];

只提供要弹出的viewController的实例,如果你想弹出动画,则设置动画属性为YES,否则设为NO。

答案 2 :(得分:0)

这里控制器UIViewControllerUINavigationController的rootViewController。因此,您只需要从rootViewController

弹出ViewController1即可
[self.navigationController popToRootViewControllerAnimated:YES];

答案 3 :(得分:0)

你可以这样做:

ViewController *loginVC = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self.navigationController popToViewController: loginVC animated:YES]