【发布时间】:2017-01-06 09:08:20
【问题描述】:
我有一个包含一些文本标签和多个其他属性的视图控制器。我想使用该视图控制器来编辑视图和查看视图的内容。现在我要做的是传递标志,以便它指示请求是编辑字段还是查看字段。
我已经这样做了,但没有工作。假设我的包含视图的视图控制器是第三个视图控制器,我正在从第一个和第二个视图控制器访问这个视图控制器。
//In third View COntroller
var isEdit: Bool! = false
func viewDidLoad(){
self.loadData()
}
override func loadData{
if isEdit == false{
//print this is edit mode
}
else if isEdit == true{
//This is view mode
}
else{
//print error navigtion
}
}
并且我正在从第一个视图控制器上的按钮单击操作访问此视图控制器
let mapViewFirst = self.storyboard?.instantiateViewControllerWithIdentifier("ThirdViewController") as? ThirdViewController
mapViewFirst.isEdit == true
self.navigationController?.pushViewController(mapViewFirst!, animated: true)
和从 secondViewController 一样
let mapViewSecond = self.storyboard?.instantiateViewControllerWithIdentifier("ThirdViewController") as? ThirdViewController
mapViewSecond.isEdit == false
self.navigationController?.pushViewController(mapViewSecond!, animated: true)
它总是在isEdit == false上运行
即视图控制器始终处于编辑模式,它永远不会移动到其他条件。谁能找到更好的解决我的问题的方法。
【问题讨论】:
-
您有一个名为
isEdit的变量,但您设置的变量名为iseditMode...它应该如何工作?另外,为什么isEdit是未包装的可选而不是普通的Bool?更奇怪的是,您实例化的视图控制器与您推送的视图控制器不同。 -
不是应该重写func viewDidLoad()吗?这甚至被称为?
-
对错误感到抱歉,现在我已经为我的问题添加了清晰度。现在一切都在工作,除了它总是在 isEdit == false 上执行。那么我在这里错了什么。