编码定制SplitViewController - 当我应该叫viewWillAppear中,vi

2019-09-28 00:18发布

我从头开始编写自己SplitViewController(通过继承,即UIViewController ,而不是UISplitViewController )。

它有两个子viewControllers(一个用于左侧面板和一个用于详细右图),而我需要发送相应的消息( viewWillAppear, viewDidAppear, viewWillDisapppear and viewDidDisappear )。

我已经转发这些消息时,我的自定义SplitViewController接收它们和正常工作。 不过我在努力搞清楚的时候给他们当任何两个子viewcontrollers是由一个新的,这也需要接收这些消息所取代。 我加入了新的观点UIViewController正常,但消息没有得到充分调用。

我最初的办法是给他们打电话子viewControllers的制定者,调用viewWillDisappearUIViewController即将被释放,并viewWillAppearUIViewController集,但是这一次是之前执行viewDidLoad ,所以我推测是错误的。

我也看到的UIView有一个方法didAddSubview:可能是有用的,知道什么时候调用viewDidAppear在记者UIViewController

任何帮助将非常感激!

Answer 1:

如果要镜像UISplitViewController,看来最好还是有打印出每时方法被调用虚拟UIViewControllers。

至于你当前viewWillDisappear,viewWillAppear中和viewDidLoad中的排序问题,只是做:

-(void)setSomeViewController(UIViewController newVC)
{
    [oldVC viewWillDisappear];
    [newVC view]; // Causes newVC to load the view, 
                  // and will automatically call -viewDidLoad
    [newVC viewWillAppear];

    [oldVC.view removeFromSuperview];
    [self.view addSubview:newVC.view];

    //retain and release as appropriate
    // other stuff you'll need to mirror, etc. etc.
}


文章来源: Coding custom SplitViewController - when should I call viewWillAppear, viewDidAppear, etc…?