如何从表视图控制器转到详细控制器并返回
Posted
技术标签:
【中文标题】如何从表视图控制器转到详细控制器并返回【英文标题】:How to go from table view controller to a detail controller and go back 【发布时间】:2014-11-08 18:02:05 【问题描述】:我有一个带有单元格的表格视图控制器,单击单元格时我想打开一个视图控制器来显示详细信息。在详细视图控制器上,我希望有一个导航操作,如导航栏,其中包含一个返回表视图控制器的项目。然后表格视图控制器应该显示我选择的最后一个显示的单元格,而不是第一个单元格。我希望你知道我的意思。而且我不想在显示的表格视图控制器上有导航栏。所以导航控制器可能不是我的解决方案。
目前,我打开详细视图控制器的表格视图控制器代码如下所示:
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)
谢谢!
【问题讨论】:
【参考方案1】:这是您可以执行的返回表视图控制器的操作。 如果您使用 'push' 进入详细视图控制器,请执行此操作,
@IBAction func goToFeed(sender: AnyObject)
navigationController?.popViewController(...)
如果您使用“模态”打开详细视图控制器,请使用,
@IBAction func goToFeed(sender: AnyObject)
self.dismissViewController(...)
【讨论】:
以上是关于如何从表视图控制器转到详细控制器并返回的主要内容,如果未能解决你的问题,请参考以下文章