我有一个AViewController,它有一个笔尖。文件的笔尖是AViewController。 在这个视图中我有一个UIButton。 UIButton有一个tap动作,它调用AViewController的buttonTapped:(id)sender方法。 我有一个UIPageViewcontroller,它将AViewController设置为ViewController。
如果我按下或显示UIPageViewController并点击按钮。工作良好。 如果我在rootViewController的视图中手动添加UIPageViewController的视图并点击按钮,它就会崩溃。
任何想法为什么?
代码剪辑:
PViewController *p = [PViewController new];
// P is the UIPageViewController and it has AViewController in it.
[self.navigationController presentViewController:p animated:YES completion:nil];
// Tapping on AViewController's button works fine.
PViewController *p = [PViewController new];
[[UIApplication sharedApplication].keyWindow.rootViewController.view addSubview:p.view];
// Adding PageViewControllers view inside rootViewController then tapping on button does not work.
答案 0 :(得分:0)
PViewController *p = [PViewController new];
[[UIApplication sharedApplication].keyWindow.rootViewController.view
addSubview:p.view];
这是非法的。您不能简单地将视图控制器的视图直接添加到另一个视图控制器的视图中。
为了执行这种移动,您必须经历整个歌舞,其中一个视图控制器成为另一个视图控制器的子视图控制器,并且某些消息按特定顺序发送。
请参阅Apple关于此主题的文档: