视图切换

 1 视图切换

第一种 模态化的方式切换转场

modalTransitionStyle的类型是UIModalTransitionStylePartialCurl时反相传值第一个视图添加它,第二个视图在TouchBegan…方法中dissmiss时TextField被点击时会直接返回到第一个视图,TextField无法编辑

modalPresentationStyle

需要将实例化后视图控制器设置成导航控制器的根视图控制器,然后再进行切换,

NextUIViewController *vc =[[NextUIViewController alloc]init];

UINavigationController *navVC =[[UINavigationController alloc]initWithRootViewController:vc];

[self presentViewController:navVC animated:YES completion:NULL];

if([self.delegate respondsToSelector:@selector(reverseSendValue:)]){

//        [self.delegate reverseSendValue:tf.text];

        [self.delegate performSelector:NSSelectorFromString(@"reverseSendValue:")withObject:tf.text];

    }

2 种转场:

UINavigationController, navigationBar / toolBar  , UIBarButtonItem

每个视图控制器都有自己的navigationitem属性,每个视图控制器的navigationitem是不同的,通过它可以设置navigationbar的返回按钮、左右视图、titleView等属性

高度44, tabbar高度49

//设置返回按钮,在下个界面体现

    self.navigationItem.backBarButtonItem = backItem;

pushViewController:  animated:

popToViewController:self.navigationController.viewControllers[0]

3 直接切换视图

通过UIView的window属性获得UIWindow对象

重新指定UIWindow对象的rootViewController属性

4 通过管理子视图的方式切换视图

  用一个视图控制器做容器,将其他的视图控制器加入到容器视图控制器中,再将第一个要呈现的视图控制器的视图贴到容器视图控制器上([self.view addSubiew:self.childViewControllers[0]])。当需要进行视图切换的时候,可以调用容器视图控制器的transitionFromViewController:toViewController:duration:options:animations:completion方法;如果要从容器视图控制器中移除当前视图控制器可以调用removeFromParentViewController方法。

5.视图控制器的旋转

可以在项目的通用设置(General)选项中设置"Device Orientation"勾选允许设备旋转的方向,如下图所示;也可以在info.plist文件设置"Supported interface orientations"键,可以使用的值包括:Portrait(bottom home button)、Landscape(left home button)、Landscape(right home button)、Portrait(top home button)

6 自定义切换效果

https://www.cnblogs.com/zanglitao/p/4167909.html

https://www.jianshu.com/p/ad492060b741

你可能感兴趣的:(视图切换)