如何从表视图控制器转到详细控制器并返回

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(...)

【讨论】:

以上是关于如何从表视图控制器转到详细控制器并返回的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将数据从表视图控制器传递到另一个控制器? [复制]

如何退出导航控制器?

如何将数据从表视图传递到另一个视图控制器

如何将不同的数据从表视图传递到另一个视图控制器

如何将标签中的数据从表视图行操作发送到视图控制器?

如何将核心数据信息从表视图传递到视图控制器?