我在第一个viewcontroller中有两个ViewController类,一个firstviewController,另一个是secondViewController,我调用了这个[self dimissModalViewControllerAnimation:NO];
贬低观点!现在我需要从另一个secondViewController类中删除相同的视图。
所以我需要打电话给超级!
[super dismissModalViewControllerAnimated:NO];
或者我是否需要创建任何解除视图的协议!来自另一个secondViewController类。
可以指导我解决这个问题。
答案 0 :(得分:1)
您可以在firstViewController的viewDidLoad
中注册通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"MyNotification" object:nil];
在firstViewController中添加事件处理程序
- (void)handleNotification:(NSNotification*)note {
[self dismissModalViewControllerAnimated:NO];
}
然后你可以在secondViewController中触发事件
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification" object:nil ];
答案 1 :(得分:1)
当您重载方法定义时,您应该只使用super
,例如:
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Login / Signup";
}
通常情况下,如果您试图让一个视图从另一个视图中执行某些操作,则代理人就是您的朋友。您可以创建一个弱delegate
变量来保存对要解除的视图控制器的引用,并调用[delegate dismissModalViewControllerAnimated:NO];