Ios 当表单表(UIModalPresentationFormSheet)消失时,如何获取通知?
我有一个视图控制器(a),它以表单(UIModalPresentationFormSheet)的形式显示另一个视图控制器(B) 现在,我想关闭视图控制器B,并在安全的情况下尽快显示另一个视图控制器(因为在显示或关闭另一个视图控制器时,您不能使用Ios 当表单表(UIModalPresentationFormSheet)消失时,如何获取通知?,ios,ipad,Ios,Ipad,我有一个视图控制器(a),它以表单(UIModalPresentationFormSheet)的形式显示另一个视图控制器(B) 现在,我想关闭视图控制器B,并在安全的情况下尽快显示另一个视图控制器(因为在显示或关闭另一个视图控制器时,您不能使用presentModalViewController:) 然而,当表单完全消失时,我似乎找不到任何方式得到通知。有什么解决方案吗?毫无疑问,您已经注意到,当退出UIModalPresentationFormSheet控制器时,不会触发旧的视图方法。您可以通
presentModalViewController:
)
然而,当表单完全消失时,我似乎找不到任何方式得到通知。有什么解决方案吗?毫无疑问,您已经注意到,当退出
UIModalPresentationFormSheet
控制器时,不会触发旧的视图方法。您可以通过在关闭控制器时简单地调用该方法来模拟ViewWillAspect调用,但这不是您所需要的
您可以将新的viewController推送到现有的模态视图控制器的navigationController,而不是显示第二个模态视图控制器吗?无论如何,这可能会提供更好的用户体验
或者你能用流行音乐吗?我们就是这么做的
由于控制表单表(B)的视图控制器确实获得了-viewdidenerge
,因此我们只需将呈现视图控制器(A)添加为代理,然后在(B)视图控制器上调用-viewdidenerge
时手动通知该代理
委托定义如下所示:
@protocol FormSheetViewControllerDelegate
- (void)formSheetViewDidDisappear;
@end
我们向FormSheetViewController添加一个委托:
@interface FormSheetViewController
@property (nonatomic, weak) id <FormSheetViewControllerDelegate> delegate;
@end
@implementation FormSheetViewController
- (void)viewDidDisappear:(BOOL)animated {
[delegate formSheetViewDidDisappear];
}
@end
p.S.:
由于iOS 5和块,UIViewController具有以下方法
- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
您可以使用它来对表单表单视图的取消作出反应。顺便说一句,对于需要调用“viewwillbeen”的任何人来说,这里描述了要实现的模式:(在ModalViewControllerDelegate下)