创建一个UIViewController的子类,开发者便可以进行自定义视图控制器的开发。创建项目UIViewControllerPractise,在File菜单下选择New→File,新建一个Cocoa Touch Class。如图11.3.1所示:
图11.3.1 新建Cocoa Touch Class
点击“Next”按钮,如图11.3.2新建一个PresentViewController继承自UIViewController,并且勾选上“Also create XIB file”,同时为视图控制器创建XIB文件,方便控件和源码进行连接。
图11.3.2 新建一个PresentViewController类
点击“Next”选择需要保存的路径,开发者可以选择与ViewController.swift相同的路径。最后在选择完路径之后点击“Create”按钮,两个文件就被创建好了。点击打开PresentViewController.xib文件(如图11.3.3所示),其中View就是视图控制器的view属性所对应的view,开发者可以往这个View上拖拽新的控件来自定义界面。示例中放置了三个UILabel和一个UIButton。
图11.3.3 PresentViewController.xib
使用AutoLayout的方式简单地布局了一下界面,如图11.3.4所示:
图11.3.4 自定义PresentViewController的界面
文字“关闭自定义视图控制器”是按钮,在PresentViewController中为其添加一个action方法,代码示例如下:
动手写11.3.1 UIViewControllerPractise->PresentViewController.swift(www.xing528.com)
点击按钮之后将会调用自身的dismiss方法,此外在Main.storyboard中增加一个按钮用于展示这个自定义的PresentViewController。如图11.3.5所示:
图11.3.5 在Main.storyboard中增加按钮
然后为Main.storyboard中的按钮添加一个action方法,如示例:
动手写11.3.2 UIViewController->ViewController.swift
点击按钮之后将会调用View Controller的实例方法present,这个方法会弹出一个新的视图控制器的视图,与之前的dismiss相对应。读者需要注意的是自定义的PresentViewController是如何被初始化的,代码示例如下:
由于为这个视图控制器添加了XIB文件,所以初始化使用的是init(nibName:bundle:)这个方法,传入的nibName参数即这个XIB文件的名字,而bundle参数则选择Bundle.main。Bundle.main是工程中的主bundle,用于获取资源(图片、声音)、编译好的代码和nib文件。至此,这样一个PresentViewController的实例就初始化好了。运行模拟器,点击“打开自定义视图控制器”,我们便能看到新的视图被展示出来,如图11.3.6所示。
再点击新视图上的“关闭自定义视图控制器”按钮,自定义的视图便消失了。
图11.3.6 自定义视图展示
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。