我有一个导航控制器和两个连接到它的视图控制器ViewController1
和ViewController2
。这是我设置所选行的代码片段
func questions()
{ // Initalizations
var ns = defaults.integerForKey(qwre)
let indexPath = NSIndexPath(forRow: ns, inSection: 0)
self.tableView.selectRowAtIndexPath(indexPath, animated: true, scrollPosition: UITableViewScrollPosition.None)
}
每次加载ViewController1
时,行都会被选中。
这是我的函数viewdidLoad()
override func viewDidLoad() {
questions()
}
现在问题出在我从ViewController2
回到ViewController1
的时候。我没有选中该行。显然viewDidLoad()没有被调用。我应该在哪里保留代码,以便每当我回去时都会调用questions
答案 0 :(得分:3)
您可以使用viewDidAppear()
override func viewDidAppear(animated: Bool) {
questions()
}
HTH,享受编码!!
答案 1 :(得分:1)
删除您在viewDidLoad
中使用的功能,并将其放入viewDidAppear
。
viewDidLoad
仅在您创建视图时调用,例如show it,但如果您不会调用pop back
viewDidLoad
,则会调用viewWillAppear
。因此,将该函数放在viewWillAppear
中将解决您的问题,并且为了使其仅被调用一次,请将其从viewDidLoad
中删除。
希望它有所帮助并使您的概念清晰。