2014-03-17 1 views
0

Pior Xcode 5.1, у меня была статическая таблица с двумя ячейками. Я просто использовал его в качестве формы входа, имени пользователя и пароля.Статическая таблица в UIViewController

Теперь, когда я повышен до Xcode 5.1 я получаю сообщение об ошибке: Статических виды таблиц действительны только при встраивании в случаях UITableViewController

Я нашел несколько рабочих обходные, но все они были стар ни один из них не помог мне , Класс My View Controller является подклассом класса UIViewController. Я также реализует следующие два метода:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 2; 
} 

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

    switch (indexPath.row) { 
     case 0: 
      cell = self.tableViewCellUser; 
      break; 
     case 1: 
      cell = self.tableViewCellPassword; 
      break; 
    } 
    return cell; 
} 

Это прекрасно работает, но по какой-то причине Xcode 5,1 преломил ... Использование контейнера кажутся излишеством, как я должен был бы новый контроллер представления только потому, что из двух свойств ...

+0

Не работает ли вышеуказанный код? – Milo

+0

«это работало отлично, но по какой-то причине Xcode 5.1 сломал его» – Marcelo

+0

Вам нужно использовать контроллер табличного представления и вставить его в контейнер в вашем контроллере вида – box86rowh

ответ

0

I am also implementing the following two methods:

Вы уверены, что код был включен в эти методы, когда он работал? Если вы используете статическую таблицу, вы не должны внедрять ни один из методов источника данных. Смотрите, он говорит так right here:

Note: If a table view in a storyboard is static, the custom subclass of UITableViewController that contains the table view should not implement the data source protocol. Instead, the table view controller should use its viewDidLoad method to populate the table view’s data.

я подобная неприятность себя в последнее время - я создал статическую таблицу и обнаружил, что он не работает (клетки не обнаруживаются должным образом), потому что я был непреднамеренно реализована те же методы, которые у вас есть.

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

+0

Yup, 100% уверен. Я не реализовал DataSourceDelegate, но мне пришлось реализовать эти два метода, иначе ячейки не появятся. Если я просто сменил Supercals ViewController на UITableViewController, я все равно получаю ошибку – Marcelo

1

Статические ячейки действительны только в UITableViewController. Не в UITableView. Если вы использовали UITableview вместо UItableViewController, потому что макет не должен быть полноэкранным, чем добавлять представление контейнера в представление, которое вы хотите поместить, а не в представление таблицы в раскадровке. Создайте tableViewController в раскадровке. Управляйте перетаскиванием из контейнераView в TableViewController и отпустите. выберите «embed» из всплывающего окна.

+0

Спасибо. Почти начал разрывать мое дерьмо, но ты напомнил мне о контейнерах! –

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