解决:IOS viewDidAppear/viewWillAppear无法被调用


本文转载至 http://my.oschina.net/lvlove/blog/82264

 

 

原因:

苹果的文档是这样描述的:

If the view belonging to a view controlleris added to a view hierarchy directly, the view controller will not receivethis message. If you insert or add a view to the view hierarchy, and it has aview controller, you should send the associated view controller this messagedirectly. Failing to send the view controller this message will prevent anyassociated animation from being displayed.

    实际情况中,在addSubview, presentModelviewController或者TabViewController中加载viewController时,viewDidAppear/viewWillAppear都是无法被调用的。(iphone)

解决:

     如果是pushViewController的情况,可以直接利用UINavigationControllerDelegate,这样:

.h文件中:

<UINavigationControllerDelegate>

.m文件中:

   self.navigationController.delegate =self

-(void)navigationController:(UINavigationControlle*)

    navigationController willShowViewController:

    (UIViewController *)viewController animated:(BOOL)animated  

{    

    [viewController viewWillAppear:animated];

}

-(void)navigationController:(UINavigationControlle*) 

    navigationController didShowViewController:

    (UIViewController *)viewController animated:(BOOL)animated

{

    [viewController viewDidAppear:animated];

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM