关于视图切换

今天在写代码中突然遇到一个问题,自以为在一个UIPickPhotoViewController切换到VideoPageViewController中,UIPickPhotoViewController和VideoPageViewController都是MainViewController  pushViewController方法推出来的,因此在UIPickPhotoViewController中写的代码如下:

VideoPageViewController *VideoController = [[VideoPageViewController alloc] init];
            [self.navigationController popViewControllerAnimated:NO];
            [self.navigationController pushViewController:VideoController animated:YES];
            [VideoController release]; 

结果这样根本就push不出来VideoController,后来才发现,原来是因为当你执行[self.navigationController popViewControllerAnimated:NO];这句代码的时候,你就把自己给pop掉了,所以self.navigationController 应该为nil了,再来执行 [self.navigationController pushViewController:VideoController animated:YES];应该是没效果了。所以想要然[self.navigationController pushViewController:VideoController animated:YES];这句代码有效,只要把self.navigationController 临时的保存起来就OK了。把上面的代码改成:

 

 VideoPageViewController *VideoController = [[VideoPageViewController alloc] init];
            UINavigationController *tmpNavController = self.navigationController;
            [tmpNavController popViewControllerAnimated:NO];
            [tmpNavController pushViewController:VideoController animated:YES];
            [VideoController release];  

 

这样VideoController就能够被push出来了。

 

 

 
posted @   _安静ゝ  阅读(521)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示