现在,当我的应用程序加载时,它会加载登录 View
LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil];
[mainView addSubview:[loginViewController view]];
因此,在用户单击登录后,我需要更改mainView
。解决这个问题的最佳方法是什么?如何从我的 LoginViewController
访问 mainView
?
编辑: 我已更改按钮操作以从父 View 中释放自身,但它似乎没有加载我想要加载的下一个 View 。
- (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]];
}
最佳答案
您可以按照相反的顺序执行此操作,在从 super View 中删除登录 View 之前将 TimerViewController 添加到 super View ,或者创建主视图也订阅的 LoginViewDelegate 协议(protocol)。
关于objective-c - 操作系统: Changing parent view from subview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5519527/