Статические ячейки: содержимое не отображается

Я просто хочу иметь статическую таблицу View с элементами в ней. Я использовал Xcode 4.2 с раскадровкой для этой задачи. Поэтому я создал TableView с tableViewController (подкласс UITableViewController). Я определил содержание как «Статические ячейки». и стиль & quot; Сгруппированный & quot ;.

После этого я положил несколько ярлыков и все те объекты, которые я хочу иметь в этих клетках. Я создал Outlets в таблице ViewController:

#import <UIKit/UIKit.h>

@interface tableviewcontroller : UITableViewController
@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmented;
@property (weak, nonatomic) IBOutlet UIImageView *imageview;
@property (weak, nonatomic) IBOutlet UITextView *text;

@end

поместите некоторый контент в ярлык ячейки:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.label1.text = @"This is a title";
    self.label2.text = @"Annika";
    self.imageview.image = [UIImage imageNamed: @"picture.jpg"];
}

После сборки и запуска он не показывает никаких элементов ... что я сделал не так?

Слева: в раскадровке, справа: в симуляторе. enter image description here

 Alexander28 июн. 2012 г., 08:10
Вы положили какую-либо информацию в клетках?
 Kirinriki28 июн. 2012 г., 09:08
должна быть проблема с контроллером tableview. Я понял, что мои ярлыки будут просматриваться, когда у меня нет контроллера. Так что, возможно, должно быть неявное объявление для содержимого в tableviewcontroller.
 Kirinriki28 июн. 2012 г., 08:14
Да, по крайней мере, для этикетки и картины. (см. выше, я отредактировал свой вопрос!) Но хотя я бы не поместил какую-либо информацию в ячейки, она должна хотя бы показать мне сегментированный контроль?

Ответы на вопрос(1)

Решение Вопроса

ие-либо методы источника данных. Базовая реализация UITableViewController имеет свои собственные версии этих методов, которые возвращают соответствующий контент, читая файл раскадровки. Способы являются теми, которые обеспечивают содержание таблицы, например, numberOfRows, numberOfSections, heightForRow, cellForRow и так далее.

В вашем случае вы реализовалиtableView:cellForRowAtIndexPath: и возвращал пустые клетки каждый раз. Это означало, что размер ваших ячеек был правильным, но содержимое исчезло.

Кроме того, ни один из выходов для контента в вашем статическом табличном представлении не будет установлен доafter [super viewWillAppear:animated] был вызван. Они все равно будут равны нулю в viewDidLoad, откуда вы их вызываете, потому что табличное представление не запрашивало какого-либо его содержимого на тот момент.

 28 июн. 2012 г., 13:03
Код, который у вас есть в вопросе, в порядке, он просто не в том месте!
 Kirinriki28 июн. 2012 г., 11:52
хорошо, так что я должен установить все выходы в- (void)viewWillAppear:(BOOL)animated, Что-то вроде[self setLabel1:nil];? Но не установка ноль. Если это правильно, что я должен написать вместоnil? Извините, я такой кровавый новичок.
 29 июн. 2012 г., 08:38
Это как я сказал в оригинальном ответе. Для статических ячеек вы не должны реализовывать какие-либо методы источника данных, или это переопределяет контент в раскадровке. Удалите ваш метод numberOfRows, numberOfSections и cellForRow. Для статических ячеек они заполняются базовой реализацией в UITableViewController.
 Kirinriki28 июн. 2012 г., 13:58
это приятно слышать. Я положилself.Label1.text = @"This is a title"; etc.  теперь в каждой возможной части ... в- (void)viewDidLoad , in - (void)viewWillAppear:(BOOL)animated, в- (void)viewDidAppear:(BOOL)animated но он все еще не хочет быть просмотренным :( У меня нет достаточных знаний, чтобы определить, где он должен быть размещен. Возможно, поэтому я размещал код случайным образом в каждом возможном месте.
 28 июн. 2012 г., 14:32
Если вы все еще видите контуры ячейки, но не имеете содержимого, что-то не так с вашим подклассом контроллера представления или соединениями. Убедитесь, что делегат и источник данных таблицы связаны с контроллером представления, проверьте с помощью отладчика, какие методы действительно вызываются, и, если ничего не помогает, отправьте свой код в pastebin или GitHub и поместите ссылку на него в вопрос. Я видел, как люди делают статические таблицы, гдеnothing появляется, но просто, чтобы получить контуры ячейки без содержания, это новое.

Ваш ответ на вопрос