0

我必须在执行segue之前设置一些参数,所以我必须使用CUSTOM SEGUE,对吗?在这种情况下,我会进行从一个屏幕到另一个屏幕的动画转换,但我没有 NavigationController(而且我不想插入一个!)

是否可以不使用 NavigationController 并使用自定义 segue 更改视图?

或者,是否可以为按钮设置操作并在执行转场之前执行一些代码行?我找到了这个解决方案:

  • (IBAction)showDetailView:(id)sender {

    //代码

    ......

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

}

但它需要导航控制器...

谢谢大家,对不起我的英语不好!

4

1 回答 1

0

当您在 Storyboard 中创建 segue 时,选择“modal”而不是“push”(自定义是指我认为您不需要的第三种类型)。选择 segue 并使用属性检查器为其命名。在我的代码示例中,我使用名称“editTitleBlock”。

要在目标视图控制器(将是模态视图控制器)上设置属性,请在您的第一个视图控制器中放置一个 prepareForSegueMethod ,如下所示:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"editTitleBlock"])  {
        [[segue destinationViewController] setTitleFieldString: @""];
        [[segue destinationViewController] setAltitudeFieldString:currentLocation.localizedAltitudeString];
        [[segue destinationViewController] setLocationFieldString:currentLocation.localizedCoordinateString];
        [[segue destinationViewController] setAuthorString:userName];

    if ([[segue identifier] isEqualToString:@"cancel"])  {
        // do nothing special
    }
}

回到第一个视图控制器使用:

[self dismissModalViewController animated:YES];
于 2012-02-21T19:47:57.417 回答