星空网 > 软件开发 > 操作系统

[iOS开发]- 多控制器跳转

需求一:我们制作APP的不可能一个界面来实现所有需求的,我们需要多个界面的跳转。每个界面各自实现对应的需求,代码实现多控制器之间的跳转大致分为三类。一类是使用UINavigationController 跳转 ,一类是使用UITabBarController 实现多个控制器之间的跳转,还有一类是使用presentViewController( UIViewController, animated: animated

 , completion:completion)实现跳转。

 

1.UINavigationController :

 

实现跳转:使用UINavigationController要注意的是要设置根控制器,之后的跳转都是根据根控制器来完成跳转。设置根控制器代码如下:

// 设置根控制器

let nav = UINavigationController(rootViewController:ViewController())

 

*使用UINavigationController时使用push和pop来实现跳转,代码如下:

navigationController.pushViewController(目标控制器, animated: true/false)

navigationController.popToViewController(回退上一个控制器, true/false )

navigationController.popToRootViewControllerAnimated(true/false)

*注意push是跳转到目标控制器,而pop是回退到上个控制器,popToRootView是直接回退根控制器。

*在使用UINavigationController跳转时,UINavigationController会给所有目标控制器套上“导航栏”,完成push之后,会自动在“导航栏”上生成一个返回item,点击返回item会执行pop方法返回到上一个控制器。

总结:使用UINavigationController跳转时,UINavigationController的外观只需要设置一次,之后派生的“导航栏”都会保持根控制器的外观。设置外观需要在initialize方法中设置外观代理对象(appearance)来完成设置,注意的是initialize是类方法。

 

2.UITabBarController :

 

实现跳转:使用UITabBarController注意的是,要同时把所有要跳转的控制器都一次设置完成。UITabBarController的子控制器是同时存在的,在跳转目标子控制器时不会释放其他子控制器。设置子控器的方法大致分为两种,一种是通过addChildViewController:ViewController 完成设置自控制器,这种方法每次只能设置一个子控制器。要设置多个子控器的时候可以使用viewControllers来设置多个子控制器,viewControllers 返回的是一个数组,使用时,创建完控制器,将控制器放入数组,然后直接赋值即可。需要注意的数组中的顺序,就是tabBar展示控制器的顺序,具体代码如下:

 

1).使用addChildViewController

 

self.addChildViewController:ViewController1()

self.addChildViewController:ViewController2()

self.addChildViewController:ViewController3()

 

2).使用viewControllers

 

self.viewControllers = [ViewController1(),ViewController2(),ViewController3()]

 

*跳转时,直接点击“标签栏”上的barButtonItem即可

 

3.presentViewController  :

 

实现跳转: 使用presentViewController可以跳转任意控制器,但是在跳转完成之后,如果要返回就要完成dismiss方法。presentViewController跳转的特点是从屏幕下方推出直到覆盖完整个屏幕,效果还是蛮好的,值得注意的是在完成dismiss方法之后,presentViewController会从内存释放。具体代码如下:

 

presentViewController(ViewController1() , animated: true/false , completion: nil)

 

* completion是完成跳转之后执行的回调,我们一般填nil。

* 在跳转完成一之后一定要首先写dismiss方法

dismissViewControllerAnimated(true/false, completion:nil)

*这样就完成了返回,同时该控制器也会从控制器中释放。

 

总结:这样完成了多个界面之间跳转。

需求二:当然控制器之间的跳转还可以使用sb,使用sb很简单直接拖线show即可。




原标题:[iOS开发]- 多控制器跳转

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

技术规范:https://www.goluckyvip.com/tag/599.html
实时翻译功能:https://www.goluckyvip.com/tag/5990.html
正宗德国好博的标志怎么区分:https://www.goluckyvip.com/tag/59908.html
非接触式支付:https://www.goluckyvip.com/tag/5991.html
纳粹德国的标志:https://www.goluckyvip.com/tag/59915.html
二战德国的标志:https://www.goluckyvip.com/tag/59920.html
船底顶攻略(船底顶最详细攻略):https://www.vstour.cn/a/411239.html
川藏线自驾游要怎么走才比较划算呢?:https://www.vstour.cn/a/411240.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流