繁体   English   中英

Segues在Objective C / iOS应用开发中的继承

[英]Inheritance of Segues in Objective C/iOS app development

我有一个自定义的MyUITableViewController,当用户选择另一行显示另一行有关该项目的详细信息的ViewController时,我会有一个选择。 (我使用情节提要和Segue标识符“ foobar”构建)。

我创建了另一个从MyUITableViewController继承的ChildTableViewControler。 由于其中显示的项目相同,因此我只有一组不同的项目,因此我希望选择项目的行为相同。 因此,即当用户选择行之一时,我希望它执行相同的segue。 因此,我假设我不必再次编写segue代码。

但是,当我运行该应用程序并单击ChildTableViewController中的某一行时,它说未找到带有标识符“ foobar”的segue,并且崩溃了。

那么segue中没有继承吗? 我必须重复编写segue代码吗?

由于这个问题仍然存在,这里给出一个答案:

首先要提到的重要一点是segue不是ViewController属性,如果转到UIViewController类并搜索segue,则只会找到方法而没有属性,这已经表明它不能被继承。 然后,如果您检查UIStoryboardSegue界面,您将发现:

@property (nullable, nonatomic, copy, readonly) NSString *identifier;
@property (nonatomic, readonly) __kindof UIViewController *sourceViewController;
@property (nonatomic, readonly) __kindof UIViewController *destinationViewController;

UIStoryboardSegue文档中,您将找到:

UIStoryboardSegue对象负责执行两个视图控制器之间的视觉转换。 另外,segue对象用于为从一个视图控制器到另一个视图控制器的过渡做准备。 Segue对象包含有关转换中涉及的视图控制器的信息。UIStoryboardSegue类支持UIKit中可用的标准视觉转换。 您还可以子类化以定义情节提要文件中视图控制器之间的自定义过渡。

segue仅负责viewControllers之间的视觉过渡,并且该segue包含有关此过渡中涉及的特定viewControllers的信息,这也意味着segue专门针对那些引用它们的视图控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM