swift 表格导航控制器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 表格导航控制器相关的知识,希望对你有一定的参考价值。

//
//  Copyright © 2014 Yuri Kotov
//

import UIKit

@objc
protocol FormNavigation {
    var nextField: UIResponder? {get}
}

class FormNavigationController: NSObject {
    let action: Selector = "textFieldDidReturn:"

    @IBOutlet
    var fields: [UITextField] = [] {
        willSet { unsubscribe(fields) }
        didSet { subscribe(fields) }
    }

    func subscribe(fields: [UITextField]) {
        fields.map { $0.addTarget(self, action: self.action, forControlEvents: UIControlEvents.EditingDidEndOnExit) }
    }

    func unsubscribe(fields: [UITextField]) {
        fields.map { $0.removeTarget(self, action: self.action, forControlEvents: UIControlEvents.EditingDidEndOnExit) }
    }

    func textFieldDidReturn(sender: UITextField) {
        if let field = sender as? FormNavigation {
            field.nextField?.becomeFirstResponder()
        } else if var index = find(fields, sender) {
            if ++index < fields.count {
                fields[index].becomeFirstResponder()
            }
        }
    }

    deinit {
        unsubscribe(fields)
    }
}

以上是关于swift 表格导航控制器的主要内容,如果未能解决你的问题,请参考以下文章

Swift:删除嵌入在导航控制器中的表格视图控制器页脚下方的空间

在 Swift 的导航栏中设置图像

导航控制器工具栏大小和位置 - iOS Swift

在 Swift 中单击以编程方式切换到 TableViewCell 上的导航视图

Swift 3、Xcode 8 中的 UINavigationController

导航控制器中不显示后退按钮