我在每个tableViewCell上添加了UIButton,这样当我点击它时,它可以根据tableViewCell上的文本将用户发送到另一个viewController。我已经使用了带有sharingManager的singleTon来在viewControllers之间传递值,并且我为每个tableViewcell在函数“setSelected”中设置了标题。
override func setSelected(selected: Bool, animated: Bool) {
SharingManager.sharedInstance.selectedCollege = self.CollegeLabel.text!
}
然后我获取“selectedCollege”的值并在另一个UIviewcontroller上设置标题。
override func viewDidAppear(animated: Bool) {
self.title = SharingManager.sharedInstance.selectedCollege
}
但是,它没有正确设置标题,因为标题并不总是与tableViewCell上的文本匹配。
答案 0 :(得分:0)
为什么使用SharingManager?如果要在ViewControllers之间传递数据,可以使用prepareForSegue方法。
答案 1 :(得分:0)
使用prepareForSegue
方法。
1)在故事板中设置segue
2)做这样的事情:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let cntrl = segue.destinationViewController as? SecondViewController {
cntrl.publicVar = 'your value'
}
}
你也可以获得indexOf选中的tableView行。例如:
let selectedIndex : NSIndexPath = self.tableView.indexPathForSelectedRow
另一种方式 - 初始化viewController,其中包含storyboard ID和call pressent函数
答案 2 :(得分:0)
你可以做这样的事情来满足你的需要
在视图控制器中创建要设置标题
的变量class SecondVC: UIViewController {
//MARK: - Variables
var title : String = ""
.......
现在点击按钮
override func setSelected(selected: Bool, animated: Bool) {
let title = self.CollegeLabel.text!
let secondVC = self.storyboard?.instantiateViewControllerWithIdentifier("SecondVC") as! GSMenuCategoryPriceVC
secondVC.title = title
self.navigationController?.pushViewController(secondVC, animated: true)
}