单击tableview单元格不移动到新控制器

时间:2016-09-16 10:48:10

标签: swift tableview

我是iOS开发的新手。当我点击tableViewCell我想要移动到新的viewController时,我想问一件事,但是当我点击它时,它会给我注意。

这是我的代码 -

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    let row = indexPath.row
    if row == 4
    {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let secondViewController = storyboard.instantiateViewControllerWithIdentifier("contact") as! contactsandlists
        navigationController?.pushViewController(secondViewController, animated: true)
        print("error")
    }

请解决我的问题

4 个答案:

答案 0 :(得分:0)

尝试使用此演示文稿。

这将显示您的控制器,但它没有导航栏。

 self.presentViewController(secondViewController, animated: true, completion: nil)

如果您想使用导航栏。

 self.navigationController.pushViewController(secondViewController, animated: true)

答案 1 :(得分:0)

你有一个navigationController吗?如果你不这样做,那么就不会发生任何事情而且你打印出错误"。另一种方法是更改​​在AppDelegate中找到的窗口属性的根视图控制器

    let appDelegate = UIApplication.sharedApplication().delegate

    if let window = appDelegate?.window {
        window?.rootViewController = secondViewController
        window?.makeKeyAndVisible()
    }

另一种方法是使用tableviewcell和其他视图控制器之间创建segue并使用performSegueWithIdentifier

performSegueWithIdentifier("segueId", sender: nil)

答案 2 :(得分:0)

NavigationController设为初始视图。

  • 选择secondViewController视图
  • 转到编辑器 - >嵌入 - >导航控制器。
  • identifier内使用NavigationController设置identity inspector的{​​{1}},见下图。

enter image description here

答案 3 :(得分:0)

1.您必须通过此程序将包含您的tableview的ViewController嵌入到storyboard中

GoTo Storyboard - >单击您的控制器 - >编辑(在顶部菜单中) - >嵌入 - >导航控制器

  1. 记下此代码以推送您的控制器

    let secondViewController = self.storyboard!.instantiateViewControllerWithIdentifier("contact") as! contactsandlists
    self.navigationController.pushViewController(secondViewController, animated: true)