如何在这里正确使用segue?

时间:2014-01-18 09:56:53

标签: ios objective-c uiviewcontroller segue

然后我称这种方法我想要segue。是不是?

 - (void)showMapViewController {

       [self performSegueWithIdentifier:@"MapViewController" sender:self];
 }

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {
     if ([segue.identifier isEqualToString:@"MapViewController"])
     {
      UINavigationController *navigationController = segue.sourceViewController;
      LoginViewController *loginViewController = [[navigationController viewControllers] objectAtIndex:0];
      [loginViewController performSegueWithIdentifier:@"MapViewController" sender:self];
     }
 }

1 个答案:

答案 0 :(得分:0)

您必须在故事板中创建segue并提供唯一标识符。如果您在某些按钮操作上设置此功能,则可以自动执行,例如如果你在按钮动作上创建一个segue想要推动导航控制器。当按下按钮时,segue将执行自动覆盖。在这种情况下,如果你想做一些自定义编码来设置一些属性等,那么你应该实现这个委托方法

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {
     if ([segue.identifier isEqualToString:@"segueIdentifier"])
     {
     // Here you can get source and destination view controllers and can perform some custom tasks.
     }
 }

如果您愿意,也可以按代码执行segue,因为您必须调用此方法。

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

为此,您必须通过clt +从一个视图控制器拖动到其他(源 - >目的地)来创建故事板中的segue并给出标识符。