2016-02-09 2 views
2

Есть ли способ выполнить что-то вроде ViewWillAppear на UITableViewCell?ViewWillAppear на UITableViewCell?

Методы UITableViewDelegate (например, willDisplayCell) работают только при появлении ячеек с помощью прокрутки.

В моей ситуации мне нужно определить внешний вид ячеек в ситуации, когда пользователь переходит на другую вкладку и возвращается в UITableView.

Мне удалось решить мою проблему с помощью метода indexPathsForVisibleRows, но это не кажется разумным способом сделать это.

+0

Что вы хотите выполнить, когда пользователь вернулся из другой вкладки? – iOSEnthusiatic

ответ

4

Да. вы должны использовать 0xmeyhod внутри файла m. этот метод всегда называется первым.

-(void)awakeFromNib{ 

} 

Если видимая ячейка не загружается, вам необходимо перезагрузить стол.

tableView.reloadData() 

Надеюсь, это поможет вам.

+0

Спасибо за ответ, но awakeFronNib не вызывается в случае, когда пользователь переходит на другую вкладку и возвращается в UITableView. – Bigair

+2

@Bigair awakeFromNib вызывается только при первой загрузке ячейки, как в UIViewController – Vvk

+0

@Bigair один способ использования anothyer для загрузки таблицы представления previus перезагружает ваше табличное представление, когда он нажимает на другое ** Tab ** – Vvk

2

Я не уверен, будет ли это работать для вас, поскольку вы хотите что-то сделать с изменением табуляции, иначе это сработает.

Я знаю, что отвечаю слишком поздно, но я отвечаю, чтобы помочь другим, кто рассматривает этот пост.

Таким образом, вы можете попробовать это: (Objective-C)

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell 
             forRowAtIndexPath:(NSIndexPath *)indexPath { 
    // Do what ever you want 
} 

(быстрые)

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    // Do what ever you want 
} 
+0

Я попытался использовать этот метод (swift), но я получил ошибку, чтобы удалить «переопределить» - «Метод не отменяет какой-либо метод от его суперкласса ". Когда я удаляю «переопределение», приложение компилируется, но метод не вызывается, хотя вызываются другие методы делегата (например, «didSelectRowAtIndexPath») – Zvi

+0

@Zvi, Спасибо. Обновлен мой ответ. Можете ли вы попробовать следующий метод вместо willDisplayCell и сообщить мне свой результат: func tableView (_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) – Hardik

+0

Сначала нужно использовать indexPath: NSIndexPath (ошибка даже в документации Apple). Во-вторых, я не знаю, что я сделал, но теперь это работает, используя willDisplayCell - willDisplay все еще не работает – Zvi

 Смежные вопросы

  • Нет связанных вопросов^_^