【问题标题】:How do I unwind a segue back?我如何解开一个转场?
【发布时间】:2014-09-28 19:50:09
【问题描述】:

我查看了无数答案并尝试了所有方法(似乎),但我仍然无法放松身心。

我有一个故事板序列:

导航控制器->主界面控制器->导航控制器->城市选择表视图控制器。

我在城市选择表视图控制器中添加了一个条形按钮作为后退按钮返回主界面,并将其链接到出口,但它仍然无法正常工作。

我的 CitySelectionTableViewController.m 文件

#import "CitySelectionTableViewController.h"

@interface CitySelectionTableViewController ()

@end

@implementation CitySelectionTableViewController
- (IBAction)unwindToMainInterfaceViewController:(UIStoryboardSegue *)segue
{
}
...

我的故事板在文档大纲中显示“从 Back to Exit 展开转场”转场,但没有发生任何事情。我可以到达城市选择视图,但“返回”不会带我回来。有什么建议?我确实意识到这是一个相当普遍的问题,但我尝试了 StackOverflow 和其他人的许多答案,但都没有成功。

【问题讨论】:

    标签: ios objective-c storyboard segue


    【解决方案1】:

    您的链中不应有两个导航控制器。您无法从CitySelectionTableViewController 返回,因为它已经是它所嵌入的导航控制器的第一个视图控制器,并且无处可回。一个导航堆栈应该只有一个控制器:

    导航控制器->主界面控制器->城市选择表视图控制器

    这样,一切都应该开箱即用,您甚至不必手动添加后退按钮,当您从主界面控制器到城市选择表视图控制器进行转场时,它将自动创建。

    【讨论】:

    • 有道理,但我无法从根视图添加到导航栏中。我添加了另一个导航控制器,因为这是我可以进入导航栏的唯一方法。
    • 什么意思?如果您不想在主界面控制器中显示导航栏,您可以在此处禁用它。
    • 我确实想在两个控制器中显示导航栏。目前,它显示在主界面控制器中,但没有显示在城市选择控制器中。
    • 您对主界面控制器使用推送还是模态搜索?如果它是模态的,它将不再是导航堆栈的一部分,也不会有导航栏。如果是 push segue,我的答案就有效。
    • 如果您使用的是模态转场,您可以使用第二个导航控制器,并从连接到“返回”按钮的 IBAction 调用 [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];,无需使用转场。
    猜你喜欢
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多