如何仅在单元格中禁用prepareForSegue和DidSelectRow?

时间:2016-03-07 18:45:16

标签: ios objective-c iphone swift

我的tableviewcells之间有一个GADBannerView,我的横幅没有UITableViewCell的全宽,当我在tableviewcell的横幅外面点击我的应用程序崩溃了,因为在tableviewcell的详细信息中没有任何要接收的数据。我试图做一个bool逻辑,但它不起作用:

if !isAd {

        let news = newsTeam[indexPath.row]
        print(indexPath.row)
        viewController.news = news

        self.navigationController?.pushViewController(viewController, animated: true)
    }

当我将表格视图单元格调用Ad.xib时,我设置了isAd = true。

使用此代码,当出现横幅的单元格出现时,禁用所有单元格。

1 个答案:

答案 0 :(得分:0)

在tableView的委托方法中,您可以执行以下操作:

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

    let cell = tableView.cellForRowAtIndexPath(indexPath)

    if let _ = cell as? {YOUR_AD_CELL_CLASS}{
      return
    }

  }

这样,只要单元格类型为{YOUR_AD_CELL_CLASS},就会停止进一步执行(将该代码放在最顶端以便提前退出​​)。