【问题标题】:Storyboard PeformSegue故事板执行Segue
【发布时间】:2012-05-12 16:20:55
【问题描述】:

必须有一个非常简单的解决方案,但它一直在绞尽脑汁!

如果 Facebook 会话无效,我有一个应用程序会在应用程序启动时显示“登录”屏幕,如果 Facebook 会话有效,它会继续显示主屏幕。所有这些都在我的 AppDelegate.m 中定义

应用启动时效果很好。如果 Facebook 登录或未登录,它会选择正确的 viewController。

我的问题是在 Facebook 未登录时显示的登录屏幕。它是一个 UIViewController 并有一个用于登录用户的 UIButton,当用户登录时,它应该对主视图执行 segue是一个带有嵌入式 NavigationController 的 UITableViewController。

我尝试过使用:

[self performSegueWithIdentifier:@"fbLoginYes" sender:self];

但它从不继续,即使直接从按钮触发。

像这样触发 segue 有什么问题吗?即 ViewController 到 TableViewController?

任何帮助将不胜感激!

这是我的故事板的图像:

【问题讨论】:

    标签: ios5 storyboard uistoryboardsegue


    【解决方案1】:

    它是什么类型的segue?是推吗? 你真的在 UITableViewController 中嵌入了 UINavigationController 吗?还是反过来?

    我首先要检查的是故事板中 Segue 的名称。此外,在启动 segue 的视图控制器中,您可以捕获名为 -(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 的方法。尝试在其中放置一个断点,看看它是否被调用。如果是,则问题可能出在实际的 segue 中,如果不是,则表示您没有正确调用 segue。

    【讨论】:

    • 我添加了一个屏幕截图,这样您就可以看到我正在处理的内容。它是一个 Push Segue 连接,不是连接到按钮,而是从视图控制器连接到导航控制器......我有这样的调用:
    • NSNotificationCenter在app进入前台时调用showLoggedIn方法,showLoggedIn方法使用[self performSegueWithIdentifier:@"fbLoginYes" sender:self];执行转场...转场不会被触发,即使 showLoggedIn 方法被触发。
    • 你不需要在导航控制器中嵌入你的登录(根)视图控制器吗?
    • 我尝试将登录信息嵌入到导航控制器中,但仍然没有被调用。我确实发现使用此代码有效,但它弄乱了我的应用程序的导航: UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; ECSlidingViewController *slideVC = [storyboard instantiateViewControllerWithIdentifier:@"MainTop"]; [self presentViewController:slideVC 动画:YES 完成:nil];
    • 我发现这是 Xcode 本身的问题。与编译器有关。我不得不将其全部删除并重新安装一个新副本。现在工作得很好!
    猜你喜欢
    • 2018-04-08
    • 2013-06-30
    • 2016-07-13
    • 2023-01-19
    • 2014-10-25
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    相关资源
    最近更新 更多