美文网首页傲视苍穹iOS《Swift》VIP专题小斑Swift开发实战
Swift 3 控制器复用-convenience便利构造器

Swift 3 控制器复用-convenience便利构造器

作者: 船长_ | 来源:发表于2017-04-18 21:19 被阅读260次

在Obj-C中,控制器复用一般可以这么写

.h文件中
typedef NS_ENUM(NSInteger, GapOrderType) {
    GapOrderTypeUnderWay = 1, // 进行中
    GapOrderTypeEnd,
    GapOrderTypePay
};
- (instancetype)initWithType:(GapOrderType)type;
.m文件中
- (instancetype)initWithType:(GapOrderType)type{
    if (self = [super init]) {
        _type = type;
    }
    return self;
}

在Swift中写法

public enum Verify {
    case underWay
    case end
}

// 列表
class OwnerVerifyListController: BaseController {

    fileprivate var type : Verify!
    var tableView = UITableView()

    override func viewDidLoad() {
        super.viewDidLoad()

        if type == Verify.underWay {
           title = "控制器1"
        }else{
           title = "控制器2"
        }
    }

    // 便利构造器
    convenience init(type: Verify){
        self.init()
        self.type = type
    }
}

用法示例,在父控制器中添加两个自控制器

fileprivate func addMyChild(){
        let underVc = OwnerVerifyListController(type: Verify.underWay)
        self.addChildViewController(underVc)
        
        let endVc = OwnerVerifyListController(type: Verify.end)
        self.addChildViewController(endVc)
 }

配图示例

demo.png

相关文章

网友评论

    本文标题:Swift 3 控制器复用-convenience便利构造器

    本文链接:https://www.haomeiwen.com/subject/txmqzttx.html