如何从表视图控制器到细节控制器,然后返回
问题描述:
我有一个表格视图控制器与单元格和单击单元格我想打开一个视图控制器以显示详细信息。在详细视图控制器上,我想要一个像导航栏一样的导航操作,并将项目返回到表视图控制器。然后表格视图控制器应该显示我选择的最后一个显示的单元格,而不是第一个单元格。我希望你明白我的意思。我不想在显示的表格视图控制器上有导航栏。所以导航控制器对我来说可能不是解决方案。如何从表视图控制器到细节控制器,然后返回
此刻我的表视图控制器打开详细资料视图控制器的代码如下所示:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let vcMissionDetail : ViewControllerMissionDetail = self.storyboard?.instantiateViewControllerWithIdentifier("MissionDetail") as ViewControllerMissionDetail;
self.presentViewController(vcMissionDetail, animated: true, completion: nil)
}
我用presentViewController
加载细节视图控制器。是否使用prepareForSegue
更好的解决方案?
而详细视图控制器看起来像这样。我使用带有条形按钮项的导航栏返回到表格视图控制器(动作goToFeed
),但我对此解决方案不满意。我也想打开桌面视图控制器:
import UIKit
class ViewControllerMissionDetail: UIViewController {
@IBOutlet var label: UILabel!
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.
}
@IBAction func goToFeed(sender: AnyObject) {
//init view controller for feed
let vcFeed: UIViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ViewControllerFeed") as UIViewController;
//vcFeed.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
self.presentViewController(vcFeed, animated: true, completion: nil)
}
}
THX!
答
这是你可以做回到表视图控制器。 如果您已经使用“推动”去详细信息视图控制器,然后做到这一点,
@IBAction func goToFeed(sender: AnyObject) {
navigationController?.popViewController(...)
}
如果您已经使用“莫代尔”,打开详细视图控制器后方可使用,
@IBAction func goToFeed(sender: AnyObject) {
self.dismissViewController(...)
}