#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. Разработка отдельно для обоих сбивает с толку.