我有一个iPhone应用程序,其中使用模式视图显示设置页面
[self presentmodalviewcontroller:tempcontroller animated:yes];
当用户完成设置时,他可以返回到上一页。
[self.dismissmodalviewcontroller animated:YES];现在,当用户从设置页面返回时,我想重新加载我的主页。我读到了一些我应该使用@protocol and delegate来实现这一点的地方,我已经在网上浏览了一些关于这个主题的教程。但我无法做到这一点,我对@protocol and delegate一无所知,因为我是iPhone开发的新手。
请给我一些好的教程。这将是伟大的,如果你可以建议我的任何链接有我的需要一步一步的描述。
期待您的帮助……
提前感谢
Joy
发布于 2010-08-17 22:12:40
另一个更简单的选择是使用NSNotificationCenter。看看这个
发布于 2010-08-17 22:03:56
Joy,
假设你有一个根,它以另一种方式呈现--称之为“viewController”。
模态被称为“模态”
“根”会说
[self presentModalViewController:Modal];那么Root如何知道何时解除Modal呢?要做到这一点,最好的方法是为这种行为制定一个“协议”。
在Modal的头文件中,会有如下代码:
@protocol ModalViewDelegate <NSObject>
-(void)modalViewControllerDidFinish:(UIViewController *)viewController;
@end然后,应该有一个modal的实例变量:
id<ModalViewDelegate> delegate;使用一个属性:
@property (assign) id<ModalViewDelegate> delegate;这使得每次Modal发送一条消息到它的属性'delegate‘时,我们知道它有一个方法-(空)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];
}这有意义吗?
https://stackoverflow.com/questions/3502783
复制相似问题