iOS3, iOS4, встроенный UIViewController и отображение данных

#iphone #ios #uiviewcontroller #uilabel #xib

#iPhone #iOS #uiviewcontroller #uilabel #xib

Вопрос:

Я пишу приложение, которое будет работать на iOS3.0 и выше.

В приложении есть пользовательский UIViewController (скажем), который я создаю из файла .xib. Его представление содержит один UILabel , который я правильно объявил и синтезировал и т.д. в моих пользовательских UIViewController файлах заголовка и реализации.

Я хотел бы задать текст этого UILabel динамически, и чтобы он был показан пользователю к моменту UIViewController появления my. Для аргументации, пожалуйста, предположите, что метод настройки текста является дорогостоящим.

Проблема заключается в iOS3.0 UIViewController , по крайней мере, с моим -(id)initWithNibName:(NSString *) aNibNameOrNil bundle:(NSBundle *) aNibBundleOrNil , возвращает раньше -(void)viewDidLoad , но на моем устройстве iOS4.0 все наоборот. Поэтому текстовая метка может быть nil , когда я этого не хочу.

Таким образом, я не знаю, где я могу установить текст таким образом, чтобы поддерживать как iOS3.0, так и iOS4.0 счастливыми.

Любой совет здесь?

Ответ №1:

Не могли бы вы объяснить, как ваша метка оказывается равной нулю?

Если вы выбрали выход для метки, то в любом случае в - (void)viewDidLoad методе он не может быть равен нулю, при условии, что выход метки правильно подключен в файле xib.

Если вы не использовали выход label и не выполняли его с помощью кода, затем снова создайте экземпляр label в - (void)viewDidLoad методе и установите его текст прямо там, а затем добавьте его в представление контроллера представления.

Для получения дополнительной информации — прочитайте метод - (void)viewDidLoad and - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle в ссылке на класс UIViewController

Комментарии:

1. Хм. Вероятно, это потому, что у меня есть длинный скрипт во втором потоке для iOS4, но еще не iOS3. Разработка отдельно для обоих сбивает с толку.