cod*_*ter 15
通过这样做,您是子类中re-declaring的label属性.IBOutlet只是一个使用Interface Builder的编译器概念.
在Swift中,存储的属性不能在子类中重写或重新声明.它们只能被遗传.
但是,您可以覆盖子类中的getter和setter,properties以提供额外的验证或功能.请参阅Swift指南:覆盖getter setter
您需要在superClass中声明您的属性IBOutlet.
或者您可以在子类中创建不同的属性.如果您在一个子类中连接您的属性(超类可能有其他类)并且您没有将此实现提供给您的超类的其他子类,也没有任何意义.
编辑:如果您将故事板中的名称提供给不同的视图控制器,您还可以将label插座设置为两个不同viewControllers的SuperClass故事板Subclasses.
只是定义
class SuperClass{
@IBOutlet weak var label: UILabel! = nil
}
Run Code Online (Sandbox Code Playgroud)
SubClass1repersent view controller1在故事板衍生自SuperClass
SubClass2repersent另一个view controller2在故事板衍生自SuperClass
比转到Assistant Editor并打开SuperClass一侧和另一侧view controller1并从故事板连接SuperClass到label故障view controller1板.Drag from SuperClass labelstoryBoard inview controller1

现在再次打开SuperClass一侧和另一侧view controller2并将故障连接SuperClass到label故障板中view controller2.Drag from SuperClass labelto storyBoard inview controller2
如果单击SuperClass插座,则会看到两个标签连接到不同的viewControllers
同意简短的回答很简单:
“只需
@IBOutlet在超类中添加修饰符。”
但需要注意的是:如果您将公开@IBOutlet通过框架(使用 Carthage)定义的 ViewController ,则需要将该public属性添加到变量定义中。编辑:相反,使用open访问关键字`。
假设您有一个视图控制器CustomViewController子类化UITableViewController,您将在 Carthage 交付的框架中构建它。消费者应用程序应该可以访问的所有内容都应该标记为public:
public class CustomViewController: UIViewController {
override public func viewDidLoad() {
super.viewDidLoad()
}
@IBOutlet public var myBackgroundView: UIView!
@IBOutlet public weak var myLabel: UILabel!
Run Code Online (Sandbox Code Playgroud)
这种方法的好处(我完全支持这个用例)是你可以在超类的 Interface Builder 中进行 IBOutlet 映射,然后将场景的类切换到子类,同时保留所有映射。
例如:SubclassedCustomViewController
import UIKit
import mymodule
class SubclassedCustomViewController: CustomViewController {
override func viewDidLoad() {
super.viewDidLoad()
myBackgroundView.backgroundColor = UIColor.blueColor()
myLabel.text = "My special subclass text"
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我意识到这个问题是不久前发布的,但由于我只是在同一个问题上挣扎并最终想出了一个解决方案,我想我仍然会发布我的发现......
我理解的问题如下(至少这是我解决的问题):
如何让 A 类从 B 类继承,每个类都有自己的 XIB 文件和一些常见的 IBOutlet 属性?目标是能够让超类处理与其子类共有的 IBOutlets 相关的操作,同时仍然能够使用 Interface Builder 为子类设计接口。*
为此:
| 归档时间: |
|
| 查看次数: |
7314 次 |
| 最近记录: |