ios界面跳转2016.5

2016-05-30  本文已影响270人  cj2527

1.可视化界面跳转之segue方式

在可视化界面storyboard里面几个View Controller之间的跳转。

自动segue

按钮控件直接拖线到目标控制器A。不需要验证,点击按钮就会直接跳转了。

手动segue

1.选中控制器,(View Controller顶部第一个图标)拖线到目标控制器B。可以做到验证一定条件才能跳转。点击连线的中间部位的图标,设置segue的identifier属性ID为secondRoad

2.在源控制器ViewController的.m文件的按钮事件编写代码

- (IBAction)openClick:(id)sender {
    
    [self performSegueWithIdentifier:@"secondRoad" sender:nil];
    
}

点击按钮就会跳转了。通常还会用到另外一个方法,用来传值,先新建ViewController类,命名为SecondViewController。在目标控制器B的custom class属性关联SecondViewController。在源控制器ViewController的.m文件编写代码

//跳转之前可以验证一些条件
-(void)prepareForSegue:(nonnull UIStoryboardSegue *)segue sender:(nullable id)sender{
  //获取目标控制器
  SecondViewController *destinationVc = segue.destinationViewController;
    if ([destinationVc isKindOfClass:[SecondViewController class]]) {
        destinationVc.name = @"登录名:admin";//通过属性传值
    }
    
}

2.在可视化界面storyboard之外的界面跳转

主要包括三种,
2.1在storyboard某一View Controller界面跳转到xib界面
2.2在storyboard某一View Controller界面跳转到代码界面
2.3在storyboard某一View Controller界面跳转到另外一个storyboard的某一界面

2.1界面跳转到xib

新建ViewController类,命名为SecondViewController,勾选xib文件一起创建,在xib文件中设置背景颜色。在源控制器ViewController的.m文件按钮事件编写代码

- (IBAction)openClick:(id)sender {
    SecondViewController *vc = [[SecondViewController alloc]init];
    [self presentViewController:vc animated:YES completion:nil];  
    //如果使用了导航控制器,就使用以下方法跳转
   //[self.navigationController pushViewController:vc animated:YES];
}

2.2界面跳转到代码界面

代码界面指没有xib文件,只有ViewController.h和ViewController.m两个文件。
新建ViewController类,命名为ThirdViewController,在它的viewDidLoad方法设置背景颜色。

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view setBackgroundColor:[UIColor grayColor]];
}

在源控制器ViewController的.m文件按钮事件编写代码

- (IBAction)openCodeView:(id)sender {
    ThirdViewController *vc =[[ThirdViewController alloc]init];
    [self presentViewController:vc animated:YES completion:nil];
}

2.3界面跳转到storyboard

新建一个storyboard文件,命名为other.storyboard
一开始是空白的,拖进一个View Controller界面,
设置它的背景颜色和storyboard ID属性为FourthViewController

在源控制器ViewController的.m文件按钮事件编写代码

- (IBAction)jumpToStoryboard:(id)sender {
    
    UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"other" bundle:nil];
    UIViewController *vc = [myStoryboard instantiateViewControllerWithIdentifier:@"FourthViewController"];
    [self presentViewController:vc animated:YES completion:nil];
    
}
上一篇下一篇

猜你喜欢

热点阅读