【问题标题】:Generating a segue between two view controllers在两个视图控制器之间生成一个 segue
【发布时间】:2014-09-15 08:02:53
【问题描述】:

所以现在我有一个带有 NavigationController 和两个 UIViewController 的故事板。在第一个 UIViewController 中,有一个 InfoLight 按钮,它连接到第二个 UIViewController。在第二个 UIViewController 中,有所有这些设置,然后是一个 Refresh 按钮和一个 Done 按钮。我希望 Done 按钮带您回到第一个 UIViewController。

我不明白如何忽略下面的代码,通过在情节提要中使用 JUST segues 来设置它。我目前有一个从 InfoLight 按钮到第二个 UIViewController 的 push segue。

请帮帮我,感谢您抽出宝贵的时间。

在第二个 UIViewController .h 文件中,我定义了 flipsideViewControllerDidFinish:

- (void)flipsideViewControllerDidFinish:(SliderGaloreFlipsideViewController *)controller;

- (IBAction)done:(id)sender;

在第二个 UIViewController .m 文件中:

- (IBAction)done:(id)sender
{
[self.delegate flipsideViewControllerDidFinish:self];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Ready?" message:@"Enjoy The Game!" delegate:nil cancelButtonTitle:@"Begin" otherButtonTitles:nil];

[alert show];
}

【问题讨论】:

  • 在情节提要中,您是否正确设置了连接?乍一看,您似乎将按钮分配给了视图控制器中的一个动作,并且没有进行转场
  • 你为什么不尝试 popviewcontroller?

标签: ios objective-c xcode uiviewcontroller segue


【解决方案1】:

试试这部分代码,它会带你回到导航控制器中的第一个视图控制器。在您的情况下,它是第一个 ui 视图控制器。 [self.navigationController popToRootViewControllerAnimated:YES];

【讨论】:

  • 不,您的第二个视图控制器上不需要任何额外的按钮。您只需在要返回第一个视图控制器的任何地方使用此块。
  • 但是我将如何获取解析的信息以更新第一个 ViewController
  • 有多种方法。你可以从第二个视图控制器调用通知中心到第一个视图控制器。或者你可以在你segue时将第一个视图控制器的引用传递给第二个视图控制器.然后在那里更新
【解决方案2】:

由于您只有两个 ViewController,因此您可以使用下面的一个从第二个 VC 弹出到第一个 VC(main/root)

    [self.navigationController popViewControllerAnimated:YES];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多