【发布时间】:2016-10-25 14:45:08
【问题描述】:
我一直在学习 swift,并为我的大部分应用奠定了基础。我有以下情节提要
一切正常。例如,我在添加课程视图控制器上有一个展开转场,当您按下保存并返回到“您的课程”视图控制器时触发。
当您在我的课程视图控制器上时,您可以选择一门课程并显示主题,然后您可以选择一个主题并进入更新分数视图控制器,这一切都很好。
但是,我的问题是这样的。我想这样做,以便当您在更新分数视图控制器中选择保存时,会触发展开转场(与添加课程中相同),并且您将返回到主题视图控制器中的主题列表。
但是,我已经学习了许多教程,并且显然之前可以使用它。 (我的展开转场的操作方法在正确的主题视图控制器中)但是当我按下保存时,展开转场并没有将我返回到主题视图控制器。
有人可以提出原因吗?我花了很多时间试图找到答案并浏览了许多教程但没有设法解决它。
我还为我的保存按钮添加了触发 segue 的连接的屏幕截图,以显示它已设置。 Showing triggered segue for save button
我在更新分数视图控制器中有以下代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if saveButton === sender {
print("save button selected")
}
}
但是当我点击保存时,即使这也没有被触发。
非常感谢
更新: 遵循 Ronatorys 的建议后,我的更新分数的视图控制器如下,但它仍然无法正常工作:
导入 UIKit
类 UpdateScoreTableViewController: UITableViewController {
@IBOutlet weak var topicGettingUpdated: UITextField!
@IBOutlet weak var newScore: UITextField!
@IBOutlet weak var saveButton: UIBarButtonItem!
var index:Int?
var Topics:[String]!
var TopicToUpdate:String?
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
guard let uiBarButtonItem = sender as? UIBarButtonItem else {
print("There is no UIBarButtonItem sender")
return
}
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.section == 0 && indexPath.row == 0 {
newScore.becomeFirstResponder()
}
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
}
但是准备转场甚至没有被触发。
【问题讨论】:
-
如果没有更多信息,很难帮助您解决这个问题。
prepareForSegue没有被触发的事实仅仅证实了 unwind segue 没有工作。
标签: swift uiviewcontroller segue unwind-segue