我有一个iPhone应用程序,我正在使用模态视图显示设置页面
[self presentmodalviewcontroller:tempcontroller animated:yes];
当用户完成设置后,他可以返回上一页。
[self.dismissmodalviewcontroller animated:YES];
现在我想在用户从设置页面返回时重新加载我的主页面。我读了一些我应该使用@protocol and delegate
的地方。我已经在网上讨论了这个主题的一些教程。但是我无法做到这一点。我对@protocol and delegate
一无所知,因为我是iPhone开发的新手。
请帮我一些好的教程。如果您可以建议我逐步描述我的需要,那将会很有用。
期待您的帮助....
提前致谢
喜
答案 0 :(得分:2)
另一个更简单的选择是使用NSNotificationCenter
。看看这个
答案 1 :(得分:0)
乐,
假设您有一个以模态方式呈现另一个的viewController - 将其称为“root”。
模态称为“模态”
“Root”会说,
[self presentModalViewController:Modal];
那么Root如何知道何时解雇Modal?执行此操作的最佳方法是为此行为制定“协议”。
在Modal的头文件中,会出现如下代码:
@protocol ModalViewDelegate <NSObject>
-(void)modalViewControllerDidFinish:(UIViewController *)viewController;
@end
然后,模态应该有一个实例变量:
id<ModalViewDelegate> delegate;
有一个属性:
@property (assign) id<ModalViewDelegate> delegate;
这使得每次Modal向它的属性'delegate'发送消息时,我们知道它有方法 - (void)modalViewControllerDidFinish:
所以让我们说Modal中有一个按钮要关闭它。该按钮只需要调用[delegate modalViewControllerDidFinish:self];
在root的头文件中,您可以像这样声明类:
@class Root : UIViewController <ModalViewDelegate>
你可以像这样实现方法modalViewControllerDidFinish:
-(void)modalViewControllerDidFinish:(UIViewController *)controller {
// any action you need to take on controller
[self dismissModalViewControllerAnimated:YES];
}
这有意义吗?