从另一个视图控制器类

问题描述:

dismissModalViewControllerAnimated我也有两个视图控制器类,一个firstviewController其他secondViewController在第一视图 - 控制我把这[self dimissModalViewControllerAnimation:NO]; 到dimiss的观点!现在我需要从另一个secondViewController类变暗相同的视图。从另一个视图控制器类

那么,我需要调用超在!

[super dismissModalViewControllerAnimated:NO]; 

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

可以在任何指导我这个问题。

+0

做你的第二个视图控制器类继承的第一个?还是他们都分开UIViewController子类? – Nate

+0

我认为,协议就足够了您的需求.. –

+0

@Nate两者都是独立的UIViewController – kiran

您可以在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 ]; 
+0

!其完美的使用通知 – kiran

您应该只使用super w母鸡你重载的方法定义,例如:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.title = @"Login/Signup"; 
} 

通常情况下,如果你想告诉一个视图从另一个观点做一些事情,委托是你的朋友。您可以创建一个弱delegate变量以被解雇的视图控制器的引用,并调用[delegate dismissModalViewControllerAnimated:NO];

+0

我假设你的意思是说,你会抱到**视图控制器参考**,将做解聘,因为'UIViewController'已'dismissModalViewControllerAnimated:' – Nate

+0

我做到了。接得好。我更新了我的帖子 –