繁体   English   中英

如何获得我的TableView选择以打开模式视图?

[英]How do I get my TableView selection to open my modal view?

我创建了一个TableViewTableViewCell在里面。

我希望TableView单元格在单独的ViewController打开。

我的故事板如下所示:

我的故事板

我的TableViewController具有:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "ShowVerse" {
        let pageDetailViewController = segue.destinationViewController as! PageViewController

        // Get the cell that generated this segue.
        if let selectedPageCell = sender as? PageTableViewCell {
            let indexPath = tableView.indexPathForCell(selectedPageCell)!
            let selectedPage = pages[indexPath.row]
            pageDetailViewController.page = selectedPage
        }
    }
}

在我的PageViewController.swift中,我有这个:

var page: Page?

override func viewDidLoad() {
    super.viewDidLoad()

    if let page = page {
        chapter.text = String(page.chapter)
        verse.text = String(page.verse)
    }
}

我没有任何错误。 但是,轻敲细胞并非没有。 我可能会缺少什么?

尝试这个:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    performSegueWithIdentifier("ShowVerse", sender: self)
}

迅速

didSelectRowAtIndexPath中的代码

self.performSegueWithIdentifier("homeSegue", sender: self)


切换到下一个视图控制器之前,如果要将值传递给下一个视图控制器

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "homeSegue")
    {
        var homeController = segue.destinationViewController as? ViewController
        homeController.name = "valeu"
    }
}



Objective-C的
didSelectRowAtIndexPath中的代码

[self performSegueWithIdentifier:@"ShowVerse" sender:self];


切换到下一个视图控制器之前,如果要将值传递给下一个视图控制器

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"ShowVerse"]) {
    HomeViewController *controller = segue.destinationViewController;
    controller.propertyName = @"value";
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM