龙空技术网

IOS 讲解 UIViewController对象(二)

Nirvana柯本 108

前言:

今天姐妹们对“controller如何接收对象参数”大约比较注意,咱们都需要了解一些“controller如何接收对象参数”的相关知识。那么小编也在网摘上网罗了一些有关“controller如何接收对象参数””的相关内容,希望小伙伴们能喜欢,我们快快来学习一下吧!

坚持写给自己看的

9.

NSString *nibName

只读,作用是返回要加载以实例化视图的nib的名称。如果没有nib则返回nil。

10.

NSBundle *nibBundle

只读,作用是返回当前控制器所用的资源文件目录结构即NSBundle对象实例,一般来说如果没有特别设定的话,一般都是当前程序所在目录(不是绝对路径!只是最后的目录名会是当前的app名字)。

11.

UIStoryboard *storyboard

只读,作用是返回当前的故事板资源结构即UIStoryboard对象。没有会返回nil。比如用代码创建控制器及视图,是没有UIStoryboard对象的,就会返回nil。

12.

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(nullable id)sender

方法类型:动态

参数:1.identifier是在StoryBoard中设定的标识名。2.sender需要传递的给下个界面实体的参数。

返回值:无

功能:用于StoryBoard即故事版这种显性界面设计的使用代码的跳转方式。调用以后会根据identifier参数在StoryBoard搜索到相应的名称后进行界面跳转。

13.

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(nullable id)sender (IOS 6.0以后可使用)

方法类型:动态

参数:1.identifier是在StoryBoard中设定的标识名。2.sender需要传递的给下个界面实体的参数。

返回值:默认返回YES,返回NO代表不可跳转至下一个界面(控制器)。

功能:重写该方法,当需要StoryBoard发生跳转时,会先询问当前控制器的对象的shouldPerformSegueWithIdentifier方法是否可以跳转,如果返回YES则不进行跳转。例如,当登录界面,没有输入正确的用户名和密码时,是不可以进入到下一个界面的,如果用StoryBoard来编写就要重写该方法避免界面的跳转。注意:如果使用performSegueWithIdentifier方法进行跳转是不会调用shouldPerformSegueWithIdentifier方法的。

14.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(nullable id)sender

方法类型:动态

参数:1.segue对象包含有关segue中涉及的视图控制器的信息,比如通过该对象获得destinationViewController等有用的属性。2.sender传递的实体对象。

返回值:无

功能:这个方法的作用就是通过重写该方法来进行对Storyboard中设置的下一个界面在要跳转前进行的配置工作。比如当前界面有一些数据是需要带到下一个界面中的,就可以使用该方法进行传递。例如以下代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{    //通过segue参数获得下一个控制器,然后为该控制器传递数据。    UIViewController *destinationViewController = (UIViewController *)segue.destinationViewController;    destinationViewController.test = self.test;}

15.

- (BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController sender:(nullable id)sender API_AVAILABLE(ios(13.0), tvos(13.0)) (IOS 13.0以后可使用)

方法类型:动态

参数:1.要被控制器处理的action。 2.action的来源控制器实例。3.其他传递的参数合集。

返回值:返回YES,说明当前控制器可以处理action,返回NO说明当前控制器不能处理。

功能:作用就是询问哪个控制器可以处理UnwindSegue的action,从发起的控制器的父控制器开始询问,如果遇到UINavigationController这种容器类型的控制器则会调用其中每一个控制器的canPerformUnwindSegueAction方法进行询问,最终得到一个结果。

16.

- (NSArray<UIViewController *> *)allowedChildViewControllersForUnwindingFromSource:(UIStoryboardUnwindSegueSource *)source

方法类型:动态

参数:1.UIStoryboardUnwindSegueSource类型对象,不需要自己去创建,都是由系统创建的,使用的人直接获取就好。

返回值:返回接收方childViewControllers的数组,按搜索展开目标的顺序排列。

功能:返回接收方childViewControllers的数组,按搜索展开目标的顺序排列。可以自己重写这个方法改变返回的数组内容以及数组内容中的排列顺序。

关于使用xib和UIStoryboard的方法及属性实在不想写了,因为实在一直是不感兴趣........以后就跳过这些玩意了。

标签: #controller如何接收对象参数