我正在展示一个模态视图控制器来显示详细信息。我进行了设置,以便对模态视图控制器中的信息进行任何更改都将更改其父视图控制器中的信息。
信息已更改,但在取消模式视图控制器时无法重新加载gridView数据。现在我有动作解除模态视图控制器内的模态。一切正常,我只是无法从模态视图控制器重新加载gridView的数据。
我在某处读到其中一个选项是创建一个能够从父视图控制器中解除模态视图控制器的委托,我似乎无法找到关于如何去做的示例或很好的教程这个。事实是我知道如何使用代表,但不太确定如何正确实现代理。
有谁能请我指出正确的方向吗?也许有人有更好的选择。我对任何建议持开放态度。
答案 0 :(得分:3)
如果我清楚地理解,当你关闭模态视图控制器时,你想要重新加载父视图控制器中包含的网格。如果是这样,请在这里:
通过执行类似
的操作在ModalViewController中声明协议@protocol MyViewControllerDelegate;
@interface MyViewController : UIViewController {
id<MyViewControllerDelegate>delegate;
// Your stuff
}
@property (nonatomic, assign) id<MyViewControllerDelegate>delegate;
@end
@protocol MyViewControllerDelegate <NSObject>
-(void)viewControllerWasDismissedOrAnyOtherNameYoudLike;
@end
在.m文件中,只需@synthesize委托。
当你调用dismissModalViewController:animated:时,也调用[delegate viewControllerWasDismissedOrAnyOtherNameYoudLike]。
在具有网格视图的视图控制器中,导入modalviewcontroller的头文件,符合协议
@interface MyGridViewController : UIViewController <MyViewControllerDelegate>
初始化Modalview控制器时,将委托设置为self,并实现viewControllerWasDismissedOrAnyOtherNameYoudLike方法。 瞧!