2016-07-20 7 views
0

У меня пока не было приложений для iOS. У меня все хорошо и с быстрым, и с Objective-C, но то, что я считаю другим, добавляет UITableView в ViewController. Раньше я добавлял UITableView в ViewController, добавлял необходимые методы источника данных и типичный объект UITableViewCell и возвращал ячейку в cellForRowAtIndexPath:, которая отображала пустые ячейки в зависимости от количества возвращаемых строк. Теперь я сделал все то же самое, но UITableView пуст, и когда я прокручиваю, я вижу строки, но не мое значение cell.textlabel.text, которое я установил. Кажется, теперь я должен добавить UITableViewCell к UITableView и удалитьДобавление UITableView в ViewController

#pragma-mark TableView Datasource 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [_formTitles count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    if(cell==NULL) 
    { 
     cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"]; 
    } 
    cell.textLabel.text=[_formTitles objectAtIndex:indexPath.row]; 
    [email protected]"Kaushik"; 
    return cell; 
} 

Я не могу найти простой пост в Интернете относительно того же. Может кто-нибудь опубликовать какие изменения в новом iOS 9 простыми способами? Спасибо

screenshot

+1

Этот стиль кода должен работать. Новый подход, который был доступен уже несколько лет, заключается в регистрации класса против идентификатора повторного использования, а 'dequeueReusableCellWithIdentifier' всегда будет возвращать ячейку, даже если ей необходимо выделить ее для вас. Можете ли вы показать больше кода? – Paulw11

+0

Кажется, теперь нам нужно добавить обязательный uitableviewcell к столу и установить reuseidentifer, не так ли? прежде чем мы этого не сделаем –

+0

Если вы используете раскадровку, вы должны добавить ячейку прототипа и установить идентификатор повторного использования. Затем структура зарегистрирует этот класс против идентификатора повторного использования для вас. Если вы создаете табличный вид программно, то вам не нужно регистрировать класс, но он делает меньше кода в 'cellForRowAtIndexPath'. Вы также можете сами выделять и возвращать ячейки, даже если вы используете раскадровку, но вы этого не сделали. Можете ли вы показать свою полную 'cellForRowAtIndexPath'? – Paulw11

ответ

0

Right..For тех из вас, кто по-прежнему предпочитают, чтобы добавить TableView в viewcontroller.Here шаги

  1. В сопротивление ViewController и падение TableView . Теперь вместо строк, которые вы видите в старом Xcode. В это время вы увидите пустое представление таблицы с текстом «Содержание прототипа таблицы» посередине.

  2. Мы обычно создаем tableviewcell, только мы делаем что-то другое, например добавляем больше меток или изображений и т. Д., Но в дальнейшем требуется добавить tableviewcell в tableview.Drag и отбросить табличное представление на tableview.It будет отображаться как ячейки протипа . Один может выбрать тип ячейки здесь сам по себе как базовый, значение 1, значение 2 или подзаголовок. Также НУЖНО УСТАНОВИТЬ ИДЕНТИФИКАТОР ВОЗВРАЩЕНИЯ В ПАНЕЛИ КОММУНАЛЬНЫХ УСТРОЙСТВ НА ВАШЕМ ПРАВЕ. В конце вы можете выбрать представление таблицы и добавить недостающие ограничения.

  3. Внесите типичные необходимые методы источника данных в класс viewcontroller.

    • (NSInteger) Tableview: (UITableView *) Tableview numberOfRowsInSection: (NSInteger) раздел { возврата 5; }

      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
      { 
          UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:@"cell"]; 
      
          [email protected]"text"; 
          [email protected]"DetailedText"; 
          return cell; 
      } 
      

Изменения здесь является то, что мы не требуют обычного, если (ячейка == ноль) {..} куска кода, поскольку мы добавили прототип клетку к раскадровке ,

Не забудьте подключить делегат и источник данных таблицы к диспетчеру просмотра.

Это должно отображать табличное представление в вашем контролере просмотра, но я получаю пробел поверх табличного представления, которое я не знаю почему. В любом случае вы добавляете табличное представление в контроллер вида с использованием языка Objective-C в iOS 9.3.

FYI: Ребята, если я пропустил что-нибудь, пожалуйста, укажите это в комментариях

Спасибо

0
  1. Put Tableview для просмотра контроллера и связать его с ViewController.
  2. link delegate и datasource таблицы viewto viewcontroller.
  3. в

    viewcontroller.h

    @interface ViewController :<UITableViewDelegate, UITableViewDataSource> 
    
  4. в viewWillAppear поставил

    tblService.delegate=self; 
    tblService.dataSource=self; 
    

    и ваши элементы массива.

    5.Impliment ваш метод делегата tableview и метод источника данных.

    6. убедитесь, что идентификатор ячейки равен одному, установленному на раскадровке.

это link поможет вам больше реализовать свое первое приложение и это video.

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