我遇到了presentViewController方法及其最后一个参数的问题。
[self presentViewController:navigationController animated:YES completion:nil];
我是Objective-c语法的新手,无法找出应该传递给'completion'参数的对象。 (也没有找到任何使用它的例子)
我希望在我提供的View Controller解散时使用回调方法。
谢谢,
米洛斯
答案 0 :(得分:16)
创建完成块的示例:
[self presentViewController:navigationController
animated:YES
completion:^(){
//put your code here
}];
此块不带参数。其他块可能需要参数,你可以像这个例子一样定义它们:
^(BOOL bFinished){
//put your code here
}
答案 1 :(得分:11)
这种方法不会给你你想要的东西。完成块用于视图控制器完成呈现时,而不是在它被解除时。您需要使用不同的模式(例如委托)来在控制器被关闭时获得回调。
在viewDidAppear:方法之后调用完成处理程序 调用了呈现的视图控制器。
答案 2 :(得分:6)
这是block
的地方。
在viewDidAppear:方法之后调用完成处理程序 调用了呈现的视图控制器。
有关解雇的操作,您可以将代码置于viewWillDisappear:
或viewDidDisappear:
方法中。
答案 3 :(得分:0)
对于所有这些年来仍在阅读本文的人,我想在UIImagePickerController内部发生错误时提醒用户。解决方案
if (error condition) {
[self dismissViewControllerAnimated:YES completion:^(void) {
dispatch_async(dispatch_get_main_queue(), ^{
// Alert the user here, for instance with a UIAlertController
});
}];
}