Навигация после выбора таблицы - PullRequest
0 голосов
/ 31 мая 2011

Я создал нечто похожее на почтовое приложение.

TableView (основной), который отображает содержимое базы данных из API и панель поиска в верхней части.

Для поиска я вывожу представление (второе) на передний план с моим поисковым ответом и помещаю его в другое представление таблицы (второе).

Для этой части все в порядке.

Теперь я хочу перейти к другому представлению, но когда я выбираю ячейку с помощью «pushViewController:», ничего не добавляется (я делаю то же самое в моем «основном» tableView, и он работает хорошо).

  • Я связал свое второе табличное представление с делегатом и источником данных.
  • Я добавил «UINavigationControllerDelegate» в .h моего «второго» представления.

Все работает хорошо, кроме моей второй навигации.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2015

Вам нужен только один tableView для поиска и отображения всех данных. Просто поддерживайте два массива. Первый содержит ваши исходные данные, а второй содержит искомые данные. Когда начнется поиск, перезагрузите tableView со вторым массивом и поместите в него все данные Таким образом, ваша навигация будет работать для обоих сценариев.

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!
}
0 голосов
/ 31 мая 2011

Прямо перед нажатием проверьте, является ли ваш второй навигационный контроллер нулевым:

  NSLog(@" nav con is %@", mySecondNavigationController);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...