什么应该在presentViewController中完成?

时间:2012-10-23 06:56:17

标签: iphone ios

我在xcode中使用presentViewController并且不确定应该完成什么。

xcode文档提供的代码:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);

我正在使用的示例:

[self presentViewController:second animated:YES completion:<#^(void)completion#>];

应该完成什么?

4 个答案:

答案 0 :(得分:41)

您可以改用以下代码:

[self presentViewController:second animated:YES completion:^{ }];

或者你可以简单地传递NULL

[self presentViewController:second animated:YES completion:NULL];

完成块用于在呈现视图控制器之后执行任何任务,完成块内部写入的代码将仅在呈现视图后执行。

答案 1 :(得分:17)

@try this

[self presentViewController:second animated:YES completion:^{[self animationCompleted];}];


-(void)animationCompleted{

   // Whatever you want to do after finish animation

    NSLog(@"Animation Completed")

}

如果您不想在完成动画时做任何事情

[self presentViewController:second animated:YES completion:NULL];

答案 2 :(得分:2)

您可以使用以下代码来展示视图

  [[self navigationController] dismissViewControllerAnimated:YES completion:NULL];

以下是该

的代码
SecondViewController *second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self presentViewController:second animated:YES completion:nil];

有关详细信息,请查看apple forum discussion

答案 3 :(得分:1)

Swift 2.0

完成处理

// Added ORecord type parameter
node.elements().asScala.foreach{ node => db.save[ORecord](
   toODocumentValue(node).asInstanceOf[ODocument] ) }

或在完成时不执行任何操作

viewController.presentViewController(anotherViewController, animated: true, completion: {
    // Whatever you'd like to do when presentViewController completes :)
})