ios NavigationViewController跳转以及返回传值

(一)使用NavigationViewController进行页面跳转时,应该使用pushViewController方法来跳转至下一页面。这种话。下一页面相同在NavigationViewController容器中。

1、跳转到下一页面:

PowerViewController *power = [[PowerViewController
alloc] init];

//所要跳转页面PowerViewController中有个属性dictionary1是个NSMutableDictionary类型的容器

[power.dictionary1
setObject:[self.outTxtPass text] forKey:ALONE_SITEPRIZE_PWD];

//使用pushViewController跳转到下一页面

[self.navigationController
pushViewController:power animated:
YES];

?

2、从当前页面返回到上一页面并传值过去:

//此页面已经存在于self.navigationController.viewControllers中,而且是当前页面的前一页面

PowerViewController
*power = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-
2];

//初始化其属性

power.dictionary
= nil;

//传递參数过去

power.dictionary
= [NSMutableDictionary dictionaryWithDictionary:self.dictionary1];

//使用popToViewController返回并传值到上一页面

[self.navigationController
popToViewController:power
animated:YES
];

返回到上一页后,上一页面显示后要接收參数,并刷新。

注意此时应该在viewDidAppear中进行推断并接收传递的值:

-(void)viewDidAppear:(BOOL)animated

{

  //推断并接收返回的參数

}

3、从当前页面返回到上一页面(无需传值)的方法:

//返回到上一界面

-(IBAction)backOff:(id)sender

{

    [self.navigationController
popViewControllerAnimated:
true];

}

(二)关于ios中 viewcontroller的跳转问题。当中有一种方式是採用navigationController pushViewController 的方法,比方我从主页面跳转到了一级页面,又从一级页面跳转到了二级页面。然后从二级页面跳转到了三级页面,依次类推。假设一级一级的返回我知道是没有问题的。调用navigationController popViewControllerAnimated即可了。

可是某些情况下我可能想要立即回到主页面,而不是一级一级的返回(假设有非常多层会非常累的),那该怎么办呢?

1.返回根页面vc用

[self.navigationController
popToRootViewController]

2.返回根页面vc用

[self.navigationController
popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];

或(通过class定位)

for

(UIViewController *controller in self.navigationController.viewControllers) {

    if

([controller isKindOfClass:[TargetController
class]])
{

        [self.navigationController
popToViewController:controller animated:YES];

    }

}

时间: 2024-09-29 15:50:50

ios NavigationViewController跳转以及返回传值的相关文章

ios--NavigationViewController跳转、返回传值

使用NavigationViewController进行页面跳转时,应该使用pushViewController方法来跳转至下一页面,这样的话,下一页面同样在NavigationViewController容器中. 1.跳转到下一页面: AloneSetPrizeViewController *setPrize = [[AloneSetPrizeViewController alloc] init]; // 所要跳转页面<span style="font-family: Arial, He

Android——关于Activity跳转的返回(无返回值和有返回值)——无返回值

一.无返回值 跳转页面,并将第一页的Edittext输入的数据通过按钮Button传到第二页用Edittext显示,点击第二页的 返回按钮Button返回第一页(改变第二页的Edittext的内容不能返回至第一页) ——普通方式,没有返回值的方式 1.给第一页面Edittext和Button设置id 2.设置Button的点击监听 (1)获取view实例,通过Edittext的id找到Edittext (2)获取内容并转为文本形式 getText().toString() (3)设置Intent

iOS开发 跳转场景的三种方式

假设A跳转到B,三种方法: 1.按住ctrl键,拖动A上的控件(比如说UIButton)到B上,弹出菜单,选择Modal.不需要写任何代码,在A上点击Button就会跳转到B 2. 按住ctrl键,拖动A上的View Controller到B上,弹出菜单,选择Modal,两个场景间自动添加连接线和图标,选中该图标,打开Storyboard Segue,identifier输入一个标识符,这里以”aaaa”为例.A里需要跳转时,执行下面的代码: 1 [self performSegueWithId

iOS页面跳转及数据传递

iOS页面跳转: 第一种 [self.navigationController pushViewController:subTableViewController  animated:YES]; //描述:通过 NSNavigationBar 进行跳转 [self.navigationController popViewControllerAnimated:YES]; //描述:在子视图返回到上级视图 第二种 UIViewController *control = [[UIViewControl

iOS 7的手势滑动返回

如今使用默认模板创建的iOS App都支持手势返回功能,假设导航栏的返回button是自己定义的那么则会失效,也能够參考这里手动设置无效. [cpp] view plaincopy if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enab

iOS 7的手势滑动返回功能

现在使用默认模板创建的iOS App都支持手势返回功能,如果导航栏的返回按钮是自定义的那么则会失效,也可以参考这里手动设置无效. if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; } 如果是因为自定义导航按钮而导

iOS 10 跳转系统设置

苦心人天不负, 为了项目终于把 iOS 10 跳转系统设置的方法给搞定了, 很欣慰. http://www.cnblogs.com/lurenq/p/6189580.html iOS 10 跳转系统设置的字段 电池电量 Prefs:root=BATTERY_USAGE 通用设置 Prefs:root=General 存储空间 Prefs:root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE 蜂窝数据 Prefs:root=MOBILE_DAT

ios 页面跳转之间传递数据----通过delegate

主要参考了这篇博客http://mobile.51cto.com/iphone-284116.htm 主要用到了,两个类,一个delegate a类,调用b类,当b类执行之后,需要把一个数据传递给a类,a类把这个数据显示出来. 1.delegate,就这一个头文件就足够了.在类中去实现这个代理方法 #import <Foundation/Foundation.h> @protocolUIViewPassValueDelegate - (void)passValue:(NSString*)val

移动端开发在iOS系统中 new Date() 返回 NaN 的问题

问题: 通过 new Date() 函数将后台返回的时间('2021-11-25')获取时间戳.在 chrome 浏览器中没有出现问题,但在 iPhone 真机测试的时候,显示的结果不符合预期.通过调试发现 iOS 中 new Date('2021-11-25') 返回的结果是 NaN,问题出现的原因是 iOS new Date() 中不能包含 - 符号. 解决办法: 最简单的办法,后台直接返回处理好的时间; 通过字符串的replace()方法(String.prototype.replace(