0

我创建了类似于邮件应用程序的东西。

一个 tableView (main),它列出了来自 API 的数据库内容和顶部的搜索栏。

对于搜索,我将一个视图(第二个)放在前面,它有我的搜索响应,然后我把它放在另一个 tableview 中(第二个)。

这部分没关系。

现在,我想要导航到另一个视图,但是当我选择一个带有“pushViewController:”的单元格时,没有任何附加内容(我在我的“主”tableView 中做同样的事情并且效果很好)。

  • 我将第二个表格视图链接到委托和数据源。
  • 我在“第二个”视图的 .h 中添加了“UINavigationControllerDelegate”。

除了我的第二次导航外,一切都很好。

4

2 回答 2

0

在推送之前,检查您的第二个导航控制器是否为空:

  NSLog(@" nav con is %@", mySecondNavigationController);
于 2011-05-31T18:05:36.860 回答
0

您只需要一个 tableView 来搜索和显示所有数据。只需维护两个数组。第一个包含您的原始数据,第二个包含搜索的数据。作为搜索开始时使用第二个数组重新加载 tableView 并将所有数据放入其中。像这样,您的导航将适用于这两种情况。

迅速:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    if isSearch == "true"
    {
        return self.searchArray.count
    }
    else
    {
        return self.arr1.count
    }
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    var cell:UITableViewCell? =
    tableView.dequeueReusableCellWithIdentifier("tableCell") as? UITableViewCell

    if(cell == nil)
    {
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "tableCell")
        cell!.selectionStyle = UITableViewCellSelectionStyle.None
    }       
    if isSearch == "true"
    {
        var main_string = self.searchArray[indexPath.row]
        var attributedString = NSMutableAttributedString(string:main_string)
            attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor(red: 0.0/255.0, green: 168.0/255.0, blue: 255.0/255.0, alpha: 1.0) , range: NSMakeRange(0, string_to_color.length))
        name.attributedText = attributedString
    }
    else
    {
        name.text = self.arr1[indexPath.row] as String
    }
    return cell!
}
于 2015-09-04T04:33:06.393 回答