关闭UIModalPresentationFormSheet
视图后如何更新父视图。如果我使用普通视图,我可以重新加载我的父视图。仅在UIModalPresentationFormSheet
中发布。请帮我。感谢
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
如果我使用
navigationController.modalPresentationStyle = UIModalPresentationFullScreen;
我可以刷新父tableview.Issue只在UIModalPresentationFormSheet中,但我需要使用UIModalPresentationFormSheet进行弹出视图。请帮我。感谢
答案 0 :(得分:3)
IMO最简单的方法:
//FormController.h
@protocol FormDelegate;
@interface FormController : UIViewController
...
@property (nonatomic, assign) id <FormDelegate> delegate;
...
@end
@protocol FormDelegate
-(void)didDismissForm;
@end
//MainViewController.h
#import "FormController.h"
@interface MainViewController : UIViewController <FormDelegate>
...
在创建(或执行segue)FormController时设置委托 解雇时调用委托方法。 在MainViewController中实现委托方法。
-(void)didDismissForm {
[self.tableView reloadData];
}
答案 1 :(得分:0)
你应该委托PresentModalView的parentView,并且应该在PresentModalView的viewWillDisappear上调用referesh方法。
否则,您可以尝试推送通知并在parentView中观察它。
- (void) refreshMyParentViewController{
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center postNotificationName:@"RefreshNeeded" object:self userInfo:refreshData];
}
//在ParentViewController中 - AddObserver来检测数据。 //以及你要调用的方法。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(delegateMethod:)
name:@"RefreshNeeded" object:nil];
- (void)delegateMethod:(NSNotification *)notification {
NSLog(@"%@", notification.userInfo);
NSLog(@"%@", [notification.userInfo objectForKey:@"RefreshObject"]);
}
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(delegateMethod:)
name:@"RefreshNeeded" object:nil];
- (void)delegateMethod:(NSNotification *)notification {
NSLog(@"%@", notification.userInfo);
NSLog(@"%@", [notification.userInfo objectForKey:@"RefreshObject"]);
}