presentViewController的回调方法

Mil*_*sic 4 ios

我遇到了presentViewController方法及其最后一个参数的问题.

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

我是Objective-c语法的新手,无法找出应该传递给'completion'参数的对象.(也没有找到任何使用它的例子)

当我提出的View Controller解散时,我希望有回调方法.

谢谢,

米洛斯

小智 16

创建完成块的示例:

[self presentViewController:navigationController 
                   animated:YES 
                 completion:^(){
                     //put your code here
                 }];
Run Code Online (Sandbox Code Playgroud)

该块不带参数.其他块可能需要参数,你可以像这个例子一样定义它们:

^(BOOL bFinished){
    //put your code here
}
Run Code Online (Sandbox Code Playgroud)


jrt*_*ton 11

这种方法不会给你你想要的东西.完成块用于视图控制器完成呈现时,而不是何时被解除.您需要使用不同的模式(例如委托)来在控制器被关闭时获得回调.

在呈现的视图控制器上调用viewDidAppear:方法之后调用完成处理程序.

请参阅presentViewController:animated:completion:


Ale*_*der 6

这是一个地方block.

在呈现的视图控制器上调用viewDidAppear:方法之后调用完成处理程序.

对于解雇操作,您可以将代码放在viewWillDisappear:viewDidDisappear:方法中.