选择表格视图后导航

发布于 2024-11-13 03:28:47 字数 381 浏览 0 评论 0原文

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

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

对于搜索,我将一个视图(第二个)放在前面,其中包含我的搜索响应,并将其放在另一个表视图(第二个)中。

对于这部分来说还可以。

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

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

除了我的第二次导航之外,一切都运行良好。

I created something similar to mail app.

A tableView (main) which lists database content from API and a search bar on the top.

For a search I bring a view (second) to front which have my search response and I put it in another tableview (second).

For this part it's OK.

Now, I want a navigation to another view but when I select a cell with "pushViewController:" nothing append (I do the same thing in my "main" tableView and it works well).

  • I linked my second table view to the delegate and the datasource.
  • I added "UINavigationControllerDelegate" in .h of my "second" view.

All works well except my second navigation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

琴流音 2024-11-20 03:28:47

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

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

Right before the push, check to see if your second navigation controller is null:

  NSLog(@" nav con is %@", mySecondNavigationController);
烦人精 2024-11-20 03:28:47

您只需要一个 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!
}

You only need one tableView for searching purpose and displaying all data. Just maintain two array. First one contains your original data and second one contain the searched data. As an when search start reload tableView with 2nd array and put all data in it. Like this your navigation will work for both the scenarios.

Swift:

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!
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文