2014-03-10 5 views
-1

У меня есть два UITableViews (tableView и tableViewevent) на одном контроллере. К сожалению, Xcode не позволяет мне это делать. То, что я хочу, это ниже:Два UITableViews внутри одного UIViewController

- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section { 
    if (UITableView == self.tableVie) { 

Xcode сохраняет желание изменить его в коде ниже, но проблема в том, что он выходит из строя на другой Tableview (tableViewevent). Как правильно сделать что-то подобное?

- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section { 
    if (tableVie == self.tableVie) { 

Наконец, таблицы также не возвращают никакие ячейки (хотя nslog показывает данные там). Я использую это для cellsatrowforindex:

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *MyIdentifier = @"cell"; 
    if ([UITableView isEqual:self.tableVie]) { 
+0

'if ([UITableView isEqual: self.tableVie])' вы не можете сравнивать классы с объектами. пожалуйста, не делайте код вверх. дайте нам свой код. – vikingosegundo

+0

Я не собираюсь. Это мой код. Я делал это неправильно? – user3360541

+1

Этот код даже не компилируется. – vikingosegundo

ответ

3

Оно должно быть:

if (table == self.tableVie) { 

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

+0

разве вы не используете isEqual вместо ==? – Pruthvikar

+0

и для cellatrowatindex: я бы использовал что, потому что выше просто возвращает пустые ячейки. – user3360541

+0

@ user1846108: Нет. '==' правильно, так как вы хотите быть уверены, что с обеих сторон есть один и тот же объект, а не два объекта, которые равны, но разные экземпляры. – vikingosegundo

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