
SomeVIEwController *tmp = [[SomeVIEwController alloc] initWithNibname:@"SomeVIEwController" bundle:nil];NSArray * vIEwControllers = [self vIEwControllers];NSArray * newVIEwControllers = [NSArray arrayWithObjects:tmp,nil];[self setVIEwControllers:newVIEwControllers];
现在在阅读UINavigationController的类引用时,我看到对于“vIEwControllers”属性,它说:“根视图控制器在数组中的索引0处,后视图控制器在索引n-2处,以及顶部控制器在索引n-1处,其中n是数组中的项目数.“
当我在那里打印我的vIEwControllers数组的计数时,我得到1,当前的rootVIEwController.如果顶级控制器(我假设是导航栏)没有东西吗?
只要我将setVIEwControllers与新视图一起使用,导航栏中的所有内容都会消失.我将添加我有一个左右按钮以及一个自定义标题按钮,它们都已初始化并添加到init方法的导航栏中,并且一直工作正常,直到它们消失在我身上.
任何帮助将不胜感激.
解决方法 因为UINavigationController管理视图控制器的堆栈(数组),如果你要为它提供一个堆栈,它将解除分配并删除它的旧堆栈.如果需要添加多个视图控制器,可以使用-pushVIEwController:animated:completion:除最后一个视图控制器外,所有 *** 作都设置为NO.因为你给它的堆栈只包含一个视图控制器,-count会打印1,实际上它将是顶视图控制器.
总结以上是内存溢出为你收集整理的ios – 为什么使用setViewControllers从UINavigationController的导航栏中删除所有内容?全部内容,希望文章能够帮你解决ios – 为什么使用setViewControllers从UINavigationController的导航栏中删除所有内容?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)