我正在尝试设置主详细信息导航。我使用storyboard,master是动态表,details是静态表。 我在控制器中有一个 nameLabel 设置作为插座,但是当我尝试在 viewDidLoad 中访问它时,它仍然设置为 nil。
我没有使用prepareForSegue,而是使用了didSelectRowAtIndexPath,它像这样推送详细视图:(因为我使用的是TableViewBindingHelper,请参阅https://github.com/ColinEberhardt/ReactiveTwitterSearch/tree/master/ReactiveTwitterSearch/Util)
func showLessonView(lessonVM: LessonViewModel) {
let lessonViewController = LessonViewController(WithViewModel: lessonVM)
self.navigationController?.pushViewController(lessonViewController, animated: true)
}
课程视图控制器:
import Foundation
import ReactiveCocoa
class LessonViewController: UITableViewController {
@IBOutlet var lessonNameLabel: UILabel!
private var viewModel: LessonViewModel
init(WithViewModel viewModel: LessonViewModel){
self.viewModel = viewModel
super.init(nibName: nil, bundle: nil)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
bindData()
}
func bindData() {
// null here!
if (lessonNameLabel != nil) {
lessonNameLabel.rac_text <~ viewModel.name
}
}
}
我怎样才能解决这个问题?
我见过的其他示例代码在 segue 中执行导航,最终调用 init(coder aDecoder: NSCoder) 构造函数,并且所有出口都已初始化。