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

时间:2014-11-08 18:02:06

标签: ios xcode uitableview swift

我有一个带有单元格的表格视图控制器,单击一个单元格我想打开一个视图控制器来显示细节。在详细视图控制器上,我希望有一个导航操作,如导航栏,其中有一个项目可以返回到表视图控制器。然后表视图控制器应显示我选择的最后一个显示的单元格而不是第一个单元格。我希望你知道我的意思。而且我不想在显示的表视图控制器上有一个导航栏。因此导航控制器可能不适合我。

目前,我打开详细视图控制器的表视图控制器的代码如下所示:

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!

1 个答案:

答案 0 :(得分:0)

这是你可以做的回到表格视图控制器。 如果您使用过' push'转到详细视图控制器,然后执行此操作,

    @IBAction func goToFeed(sender: AnyObject) {

    navigationController?.popViewController(...)
}

如果您使用了'模态'打开详细视图控制器然后使用,

        @IBAction func goToFeed(sender: AnyObject) {

    self.dismissViewController(...)
}