如何重新加载父视图

时间:2013-02-26 06:44:40

标签: ios cocoa-touch

关闭UIModalPresentationFormSheet视图后如何更新父视图。如果我使用普通视图,我可以重新加载我的父视图。仅在UIModalPresentationFormSheet中发布。请帮我。感谢

 navigationController.modalPresentationStyle  = UIModalPresentationFormSheet;

如果我使用

navigationController.modalPresentationStyle  = UIModalPresentationFullScreen;

我可以刷新父tableview.Issue只在UIModalPresentationFormSheet中,但我需要使用UIModalPresentationFormSheet进行弹出视图。请帮我。感谢

2 个答案:

答案 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"]);    
    }