在tableview选择之后导航

时间:2011-05-31 17:41:32

标签: iphone objective-c cocoa-touch tableview navigationcontroller

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

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

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

对于这部分,没关系。

现在,我希望导航到另一个视图,但是当我选择一个带有“pushViewController:”的单元格时,没有任何附加内容(我在“main”tableView中执行相同操作并且它运行良好)。

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

除了我的第二次导航外,一切正常。

2 个答案:

答案 0 :(得分:0)

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

  NSLog(@" nav con is %@", mySecondNavigationController);

答案 1 :(得分: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!
}