作者:skuman2012 | 来源:互联网 | 2021-11-03 21:25
作为新手写的笔记,方便自己记忆:
从android转过来iOS的,对于页面的跳转,找了很多资料,现在记录一下页面跳转的方法。
1.用navigationController
2.直接跳(刚刚在网上找到的,不太熟,有错莫怪)
1.建一个RootViewController,在delegate.h
代码如下:
@property (strong, nonatomic) UIViewController *viewController;
@property (strong, nonatomic) UINavigationController *navController;
delegate.m代码didFinishLaunchingWithOptions函数中写代码:
RootViewController *rootView = [[RootViewController alloc] init];
rootView.title = @"Root View";
self.navCOntroller= [[UINavigationController alloc] init];
[self.navController pushViewController:rootView animated:YES];
[self.window addSubview:self.navController.view];
这些代码加载第一个页面RootViewController。
跳转到其他页面(比如SubViewController)代码:
代码如下:
SubViewController *subView = [[SubViewController alloc] init];
[self.navigationController pushViewController:subView animated:YES];
subView.title = @"Sub";
这样的好处是会自动生成返回按钮。
2.直接跳转,什么都没有
不用做其他多余的,直接新建一个view对象
代码如下:
SubViewController *subView = [[SubViewController alloc] initWithNibName:@"SubViewController" bundle:[NSBundle mainBundle]];
[self presentModalViewController:subView animated:YES];
这样就好了。
iOS6.0之后都不用这个函数了
代码如下:
[self presentModalViewController:subView animated:YES];
可以换成
代码如下:
[self presentViewController:subView animated:YES completion:nil];
页面跳转时数据的传递
比如在需要实现view1跳到view2的时候,把view1的一些数据传给view2
思路:
1.自定义一个bean类user,在view2实现user为一个成员变量。
2.view1跳的时候把数据封装为user, 并且赋值给view2.user
代码
1. view2
.h 声明成员变量
代码如下:
@property (strong, nonatomic) User *user;
2. view1
代码如下:
View2 *view2 = [[View2 alloc] init];
User *user = [[User alloc] init];
user.name = @"kevin";
view2.user = user;
[self.navigationController pushViewController: view2
animated:YES];
3. view2
取到变量
代码如下:
self.user.name