什么应该在presentViewController中完成?

lak*_*esh 25 iphone ios

presentViewController在xcode中使用,不知道应该完成什么.

xcode文档给出的代码:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);
Run Code Online (Sandbox Code Playgroud)

我正在使用的示例:

[self presentViewController:second animated:YES completion:<#^(void)completion#>];
Run Code Online (Sandbox Code Playgroud)

什么应该完成?

Mid*_* MP 42

您可以使用以下代码:

[self presentViewController:second animated:YES completion:^{ }];
Run Code Online (Sandbox Code Playgroud)

或者你可以简单地传递NULL

[self presentViewController:second animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)

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

  • 或者是更惯用的nil而不是NULL (12认同)
  • 对于包括块的C对象,NULL是惯用的; 请参阅[Apple的此示例代码](https://developer.apple.com/library/IOs/featuredarticles/Short_Practical_Guide_Blocks/index.html#//apple_ref/doc/uid/TP40009758-CH1-SW8). (3认同)

abh*_*war 17

@试试这个

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


-(void)animationCompleted{

   // Whatever you want to do after finish animation

    NSLog(@"Animation Completed")

}
Run Code Online (Sandbox Code Playgroud)

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

[self presentViewController:second animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)