dismissModalViewController从另一个视图控制器类动画

时间:2012-05-26 18:08:27

标签: iphone

我在第一个viewcontroller中有两个ViewController类,一个firstviewController,另一个是secondViewController,我调用了这个[self dimissModalViewControllerAnimation:NO]; 贬低观点!现在我需要从另一个secondViewController类中删除相同的视图。

所以我需要打电话给超级!

[super dismissModalViewControllerAnimated:NO];

或者我是否需要创建任何解除视图的协议!来自另一个secondViewController类。

可以指导我解决这个问题。

2 个答案:

答案 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];