当前位置:   article > 正文

iOS14+Swift5.x+Xcode12学习笔记(5)——视图控制器(UIViewController)_ios中swift编写uitableview的时候,xcode输入如何提示代码

ios中swift编写uitableview的时候,xcode输入如何提示代码

简介

视图控制器用于控制控制器上的各个控件,有的控制器自带某些可视化控件。有的控制器可以直接在StoryBoard中拖放使用(如UINavigationController),有些控制器只能使用代码生成(如UIAlertController)。所有的控制器类继承自UIViewController类。
视图控制器自带数个声明周期函数,常用的如viewDidLoad(),控制器上的控件加载到内存中的时候调用,一般编写各种初始化代码;ViewDidAppear()视图控制器出现在屏幕中时调用;ViewDidDisappear()视图控制器消失时(例如切换到下一个控制器时)调用;其他的如ViewWillLayoutSubviews()视图控制器将要进行布局时,一般在这里设置控件的布局属性,这样可以很好的适配iPad设备(放置旋转后布局乱掉)。

UIViewController

  • 自带一个View,大小与ViewController相同,可以直接调用addSubViews(_:)方法在上添加控件。
  • 包含两个属性,记录切换前后的视图控制器,presentedViewController指向下一个,presentingViewController指向前一个。
  • 也可以直接将控件添加到ViewController上而不是自带的View上,这样可以在需要的时候再显示这个控件(不过一般不用这种写法,用lazy的方式更方便)。

导航控制器(UINavigationController)

导航控制器大多用来管理,包装其他控制器。被NavigationController管理的控制器除第一页外都会自动产生一个导航栏并在左上角带有一个返回按钮,点击可以返回上一个控制器,也可以给导航栏添加其他功能的按钮(如「编辑」、「新增」等等)。

  • 设置NavigationController的rootViewController属性可以设置第一个控制器界面。
  • 一个导航控制器(NavigationController)都由导航栏(UINavigationBar)
    、导航内容(UINavigationItem)、导航工具栏(UIBarButtonItem)
  • 所有NavigationController管理的ViewController共用一个NavigationBar,导航内容和导航工具栏每个ViewController独立拥有。
  • 如果要设置返回上一页按钮的右边的文字,需要在前一个ViewController中设置(返回图标由NavigationBar控制,文字由NavigationItem控制)。
  • NavigationController通过pushViewController(viewController: animated:)方法进入下一个ViewController,并将ViewController放入堆叠中。并且在任意一个ViewController中都可以通过navigationController的topViewController来获取最上层的ViewController。
self.navigationController?.topViewController
  • 1

popViewController(animated:)可以在堆叠中移除当前的ViewController。所有在堆叠中的ViewController都存放在NavigationController的viewControllers属性中。

表格控制器(UITableViewController)

UITableViewController整合了ViewController、TableView、TableViewCell。

  • 不用再设置delegate和datasource
  • 内置的表格控件占满全屏幕
  • 可以设置Cell为静态Cell在程序开始前就设定好Cell的内容。

集合控制器(UICollectionViewController)

使用方法与表格控制器几乎相同。

标签栏控制器(UITabBarController)

在视图控制器下方提供一个标签栏,每个标签项都是一个ViewController,通过点击标签项进行ViewController的切换。

  • TabBarController管理的每个控制器中,都可以通过tabBarController属性来取得TabBarController。
  • 所有被TabBarController管理的ViewController都存放在viewControllers属性中,调用append(_:)方法可以加入新的ViewController,通过tabBarItem属性设置图标与标题。
let vc = UIViewController()
tabBarController?.viewControllers?.append(vc)

vc?.tabBarItem = UITabBarItem(tabBarSystem: .favorites, tag: 0)
vc?.tabBarItem
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/863197
推荐阅读
  

闽ICP备14008679号