1

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

 navigationController.modalPresentationStyle  = UIModalPresentationFormSheet;

如果我使用

navigationController.modalPresentationStyle  = UIModalPresentationFullScreen;

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

4

2 回答 2

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]; 
}
于 2013-02-26T11:14:37.617 回答
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"]);    
    }
于 2013-08-28T18:38:27.870 回答