mbo*_*tta 3 iphone cocoa-touch uikit
我有一个根视图控制器,在其viewDidLoad方法的索引0处插入子视图.
我试图让子视图成为firstResponder,但只能这样做 - 从我的理解 - 在子视图的viewDidAppear方法中.
这是我添加到根视图控制器的viewDidLoad方法的代码行:
[self.view insertSubview: subViewController.view atIndex: 0];
Run Code Online (Sandbox Code Playgroud)
subviewcontroller有一个xib,subViewController.xib,它在运行时正确显示.尽管如此,subViewController的viewDidAppear不会被触发.
知道为什么会这样吗?任何想法如何解决这个问题 - 除了手动调用viewDidAppear(这样做会导致无法成为firstResponder)?
谢谢,
mbotta
Mat*_*ong 15
您必须将视图控制器推送到导航堆栈,以便调用它的委托方法.将视图控制器的视图添加到子视图阵列将不会调用它们.您应该做的第一件事是阅读Apple的View Controller Programming Guide,因为这样可以避免您以非标准方式执行此操作时遇到的一些麻烦.
不要将视图添加到根视图控制器子视图,而是执行以下操作:
SubviewController *controller = [[SubviewController alloc] init];
[[self navigationController] pushViewController:controller animated:YES];
[controller release], controller = nil;
Run Code Online (Sandbox Code Playgroud)
现在您的委托方法将被调用.但是,如果您没有导航控制器作为根视图控制器,则无法使用.
| 归档时间: |
|
| 查看次数: |
13624 次 |
| 最近记录: |