iOS 导航栏返回的相关跳转

导航条跳转页面的考虑

对于用navigationcontroller来跳转页面的时候,其实是执行堆栈的进栈和出栈的操作,要想释放内存,那么在来回跳转的时候,就要考虑几个问题了

1 A =>B=>C=>D,
D=>A 有根视图的话 (HOME)
[self.navigationController popToRootViewControllerAnimated:YES];  
D=>C  (每一个界面返回上一层)
[self.navigationController popViewControllerAnimated:YES];  
返回到上一层,并且传递参数
CViewController *cvc = [CViewController alloc]init];
cvc.str = self.str;
[self.navigationController popToViewController:cvc animated:true];
返回到上一层后,上一页面显示后要接收参数,并刷新。注意此时应该在viewDidAppear中进行判断并接收传递的值
-(void)viewDidAppear:(BOOL)animated
{
  //判断并接收返回的参数
}

2  A =>B=>C=>D=>E,E=>B=>C=>E

因为B在之前已经出现过,不能在E中直接PUSH到B,因为那样已经是两个B了,增加内存,所以在跳转的时候,就要进行判断是否之前已经出现过B了,出现过,则直接push。这样push到的是原有的B,不会在内存中重新生成一个B了。

NSArray *array = self.navigationController.viewControllers;

for (UIViewController *vc in array) {

if ([vc isKindOfClass:[BXXXViewController class]]) {

push VC;

}

或者知道每个界面的指针

[self.navigationController

popToViewController: [self.navigationController.viewControllers

objectAtIndex: ([self.navigationController.viewControllers count] -4)]

animated:YES];

在使用时,根据自己返回层的需要,只要改变一下“-4”这个数字就可以达到目的了

时间: 2024-11-05 14:48:46

iOS 导航栏返回的相关跳转的相关文章

Ios导航栏返回到指定的页面

在自己的项目实现中有这样的一个需求.一般情况下我们的导航栏返回按钮,是上个页面跳转过来,点击返回按钮返回到上来界面.但是在实际需求中有的并不是这么简单的.有的界面返回是只确定的界面.所以当时自己在实现的时候因为不太了解跳转的机制,导致无法实现.后来在老大,路哥(大牛)的知道下明白了.首先我们要知道导航栏的跳转是通过栈的形式进行的.所以我们每次跳转时,就会在栈里多出一个界面的对象.栈中的数就会增加,当我们需要返回跳转到前面的某一个界面时,需要我们在栈中寻找这个界面.我们需要一个数组来存放信息,当找

iOS 调整导航栏返回按钮的位置

调整导航栏返回按钮的位置 //创建返回按钮 UIButton * leftBtn = [UIButton buttonWithType:UIButtonTypeSystem]; leftBtn.frame = CGRectMake(0, 0, 25,25); [leftBtn setBackgroundImage:[UIImage imageNamed:@"icon_back"] forState:UIControlStateNormal]; [leftBtn addTarget:se

设置导航栏返回按钮的箭头颜色

返回按钮部分默认是蓝色,如有两个controller,A和B,其中A跳往B.在A中有 ViewControllerB *BVc = [[WeChatSearchViewController alloc]init]; [self.navigationController pushViewController:BVc animated:YES]; 那么有两种方式可以修改①可以在B中(不是A)的viewDidLoad或viewWillAppear写 self.navigationController.

小技巧 -- 隐藏导航栏返回按钮附带的文字

使用 [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault]; 方法可以隐藏导航栏返回按钮上的文字.代码放的位置是每一个总的Controller的viewDidLoad方法下面.

自定义导航栏返回按钮文字

自定义导航栏返回按钮文字 by 伍雪颖 navigationItem.backBarButtonItem = UIBarButtonItem(title: "返回", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)

Swift - 重写导航栏返回按钮

// 重写导航栏返回按钮方法 func configBackBtn() -> Void { // 返回按钮 let backButton = UIButton(type: .custom) // 给按钮设置返回箭头图片 backButton.setImage(UIImage(named: "NavigationBar_goBack_icon"), for: .normal) // 设置frame backButton.frame = CGRect(x: 200, y: 13, w

ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a

参考:StackOverflow ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a.在b跳转(push)到c中代码书写如下: UINavigationController *navController = [[self.navigationController retain] autorelease]; [navController popViewControllerAnimated:NO]; View

iOS不得姐项目--appearance的妙用,再一次设置导航栏返回按钮,导航栏左右按钮的封装(巧用分类)

一.UI_APPEARANCE_SELECTOR 彩票项目中appearance的用法一直没有搞明白,这次通过第二个项目中老师的讲解,更深一层次的了解到了很多关于appearance的作用以及使用方法. 在iOS属性后有UI_APPEARANCE_SELECTOR标志都可以一次性统一设置.这种情况还有很多.比如说统一设置UITabbarItem的文字颜色 通过appearance来同意设置属性最好是在+ (void)initialize;方法里面. 项目中设置导航栏背景图片的代码: 项目中设置T

自定义iOS导航栏背景,标题和返回按钮文字颜色-----转载自gyz413977349

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字Color 方法一: [objc] view plaincopy //set NavigationBar 背景颜色&title 颜色 [self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:20/255.