UINavigationController 缺点之一

在项目开发中遇到下面几个问题:

1. 有些viewcontroller是中间界面(或者叫做过渡界面)是不能返回的

2. 有时候,想更新一下已经push到navigationController中的viewController。

3. 前两个结合的情况。

stackOverflow中给过解决方法,也凑效,下面的代码是针对第三种需求的解决方案

        //获得视图栈
        NSMutableArray *navigationStack = [[NSMutableArray alloc] initWithArray:
                                           self.navigationController.viewControllers];
        //找到GroupListVC,并移除
        for (UIViewController *controller in navigationStack) {
            if ([controller isKindOfClass:[GroupListVC class]]) {
                vc = (GroupListVC*)controller;
		[navigationStack removeObject:vc];
		break;
		}
	}
	//对视图栈进行重新赋值
	self.navigationController.viewControllers = navigationStack;
	GroupListVC *vc = [[GroupListVC alloc]init];//新建GroupListVC
	vc.listtype = FGroupListFromAddressCreateGroup;
	[self.navigationController pushViewController:vc animated:YES]; 

	//不让自己进入stack
	navigationStack = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
	for (UIViewController *controller in navigationStack) {
		if ([controller isKindOfClass:[Select_GroupChatViewController class]]) {
			[navigationStack removeObject:controller];
			break;
			}
		}
	self.navigationController.viewControllers = navigationStack;

终究iOS SDK应该一个便捷得解决办法,比如enablePushNavigationController

时间: 2024-10-22 11:24:50

UINavigationController 缺点之一的相关文章

推荐系统中常用算法 以及优点缺点对比

推荐系统中常用算法 以及优点缺点对比 在 推荐系统简介中,我们给出了推荐系统的一般框架.很明显,推荐方法是整个推荐系统中最核心.最关键的部分,很大程度上决定了推荐系统性能的优劣.目前,主要的推荐方法包括:基于内容推荐.协同过滤推荐.基于关联规则推荐.基于效用推荐.基于知识推荐和组合推荐. 一.基于内容推荐 基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器

C# - 继承的优点与缺点

优点 减少代码冗余 提供代码重用 减少代码量以及提高代码可读性 代码易于管理以及可划分父类和子类 通过子类重写父类的功能可支持代码扩展 缺点 子类继承父类使两个类紧密耦合,如果修改父类代码,将影响所有继承其的子类 在继承结构中,很多数据成员仍然没有被使用,分配给他们的内存没有被利用:因此,如果你没有正确地使用继承,将影响你的程序性能

C语言有什么优点什么缺点?有什么特别之处?

优点 1. 简洁紧凑.灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示.它把高级语言的基本结构和语句与低级语言的实用性结合起来. C 语言可以像汇编语言一样对位.字节和地址进行操作,而这三者是计算机最基本的工作单元. 2. 运算符丰富 C语言的运算符包含的范围很广泛,共有34种运算符.C语言把括号.赋值.强制类型转换等都作为运算符处理.从而使C语言的运算类型极其丰富,表达式类型多样化.灵活使用各种运算符可以实现在其它高级语言中难以实现的运算. 3. 数据结

iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

转自:http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到. 我们看看它的如何使用: 下面的图显示了导航控制器的流程.最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕:当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕.相应地,在对象

ios UINavigationController

转自:http://www.cnblogs.com/ios8/p/ios-UINavigationController.html UINaviGationController通常被我们称为导航栏,他是视图与视图之间联系沟通的桥梁,一些著名的app都用到了他.下面我们来看一下如何建立一个navigation. 首先,我们通常新建工程是直接将视图控制器添加到window上,而现在有navigation以后,就多了一层:  Appdelegete.h: - (BOOL)application:(UIA

UINavigationController和UIBarButtonItem的例子

#import "AppDelegate.h" #import "FirstViewController.h" #import "SecondViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOption

iOS设计之 多视图导航栏UINavigationController切换视图的简单设计

在iOS平台上创建有个工程,之后在工程中创建两个类视图 操作步骤如下 1.在分别在两个类视图中对主视图设置背景色 FirstViewController.m #import "FirstViewController.h" @interface FirstViewController () @end @implementation FirstViewController - (void)viewDidLoad {    [super viewDidLoad];        //设置主视

UINavigationController导航控制器

UINavigationController导航控制器,是多个界面间跳转的重要元素,可以理解为它存储着多个viewController,它的存储结构是栈,栈的特点是先进后出,所以添加视图控制器时,要特别注意. UINavigationController有几个常用的方法: 1:[UINavigationController initWithRootViewController:viewController ] 是指将哪一个视图控制器设置为导航控制器的根视图控制器,即运行是第一次看到的界面. 2:

UINavigationController

1 #import "AppDelegate.h" 2 #import "RootViewController.h" 3 @interface AppDelegate () 4 5 @end 6 7 @implementation AppDelegate 8 9 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc