objective-c - 操作系统: Changing parent view from subview

标签 objective-c cocoa macos

现在,当我的应用程序加载时,它会加载登录 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/

相关文章:

ios - 如何在Objective-C的NSNumber后面附加一个字符?

cocoa - 如何在 Mac os x 10.5/10.6 上安装启动代理

objective-c - NSDictionary 的 -allKeys 方法的计算复杂度是多少?

macos - Crontab没有运行本地/bin/脚本。卡塔利娜(BigSur)

objective-c - 如何区分未设置的 float 和值为 0 的 float ?

IOS - 获取通知并决定做什么

objective-c - Objective-C (Mac) 中的 RSA 加密

cocoa - 使用核心动画的 NSView 显式动画

macos - Mono.Zeroconf 的 OSX 端口

c++ - 在已编译的 C 或 C++ 代码中加密密码