在我的TableviewController中,我的右上角有一个条形按钮项。单击按钮后,将显示新的视图控制器。在此Controller中,我将一些数据输入到文本字段并保存。要保存这些数据,我必须单击一个按钮,这也是右上角的一个条形按钮项。
但现在它将我委托给我的应用程序的第一个视图控制器。 我做了什么,它将我委托给表视图控制器?
编辑:
当我使用以下代码时,该应用会向我显示EXC_Breakpoint: (code=IEXC_386..)
错误,并将其转到视图控制器TeamOverviewController
var vc = self.storyboard?.instantiateViewControllerWithIdentifier("TeamOverviewController") as ViewController
self.navigationController?.popToViewController(vc, animated: true)
答案 0 :(得分:3)
似乎解决方案可以使用标准的“展开segue”。关于这个问题有很多帖子,但我总结了一种希望类似于你的问题的方法。
以下是2个控制器的代码:
//
// TableViewController.swift
import UIKit
class TableViewController: UITableViewController {
// add this function. When the detail ViewController is unwound, it executes this
// function
@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
println("Returned from detail screen")
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of rows in the section.
return 3
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell
// Configure the cell...
cell.textLabel!.text = "Row: \(indexPath.row)"
return cell
}
}
//
// ViewController.swift
// Detail View
import UIKit
class ViewController: UIViewController {
// When Save button is clicked, view controller is segued to the TableViewController to the function
// unwindToThisViewController
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Insert your save data statements in this function
println("Insert your save data statements in this function")
}
}
答案 1 :(得分:2)
如果您使用UINavigationController
,则可以直接弹出viewController
您需要的内容。
示例:[self.navigationController popToViewController:TableViewController animated:YES];