OSX:从子视图更改父视图

时间:2011-04-01 22:27:16

标签: objective-c cocoa macos

现在,当我的应用程序加载时,它会加载登录视图

    LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil];
    [mainView addSubview:[loginViewController view]];

因此,在用户点击登录后,我需要更改mainView。最好的方法是什么?如何从我的mainView访问LoginViewController

编辑: 我已经更改了我的按钮操作以从父视图中释放自己,但它似乎没有加载我想要加载的下一个视图。

- (IBAction)login:(id)sender {
NSLog(@"Pressed login button");

[[self view] removeFromSuperview];

TimerViewController *timerViewController = [[TimerViewController alloc] initWithNibName:@"TimerView" bundle:nil];
[[[self view] superview] addSubview:[timerViewController view]];
}

1 个答案:

答案 0 :(得分:1)

您可以按相反的顺序执行此操作,在从superview中删除登录视图之前将T​​imerViewController添加到superview,或者创建主视图也订阅的LoginViewDelegate协议。