2012-06-29 2 views
1

Как обновить ярлык нажатием кнопки, когда они оба находятся в разных классах контроллера uiview ... когда кнопка нажата, метка должна обновляться ... Я много раз пробовал. но его не происходит ..Обновление метки с помощью кнопки с другого вида

еще один Вопрос: мое приложение работает хорошо в симуляторе, но когда я запускаю на устройстве, динамически созданная кнопка (изображение кнопки) не видна, действие выполняется, но изображение отсутствует. я знаю почему?

+0

Добавьте код. – rishi

+0

еще одна проблема заключается в том, что когда приложение запускает партитуру, правильные образы галочатся с правильным файлом png n неправильно с неправильным файлом png, но когда приложение закрывается и снова запускается, оценка обновляется .... если мы вернемся и вперед оценка и изображения в порядке .. но когда приложение закрыто, оценка равна 0 ... – Cgs

+0

Как заблокировать и разблокировать уровни игры с помощью кодирования .... i used level.enabled = NO; мой первый уровень игрового приложения открыт, а другие уровни заблокированы. Так что я сохранил условие, и как только состояние будет удовлетворено, он разблокирует уровень. Но моя проблема в том, что когда я нажимаю кнопку «Назад», то снова разблокирует следующий уровень, который открыт ... может кто-нибудь мне помочь в этом ..... ThankQ in adv ... – Cgs

ответ

7

Существует несколько способов поддержания связи между представлениями (на самом деле, контроллерами представлений) в iOS. Самый простой из которых для меня отправляет уведомления. Вы добавляете наблюдателя для уведомления в представление, которое хотите внести изменение, и из представления, которое вызовет изменение, вы публикуете уведомление. Таким образом, вы говорите от ViewController B до ViewController А что «что-то готово, внести изменения»

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

В ViewController B (отправителем)

- (void)yourButtonAction:(id)sender 
{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"theChange" object:nil]; 
} 

В ViewController А (приемник) Добавить наблюдатель слушать для уведомления:

- (void)viewDidLoad 
{ 
    //......... 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(makeTheChange) name:@"theChange" object:nil]; 
} 

Не забудьте удалить его (в этом случае , на dealloc)

- (void)dealloc 
{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"theChange" object:nil]; 
    [super dealloc]; 
} 

И, наконец, метод, который обновит вашу метку

- (void)makeTheChange 
{ 
    yourLabel.text = @"your new text"; 
} 
+0

Спасибо за ур комментарий/ответ .. попробуем это. – Cgs

+0

его не работает :( – Cgs

+0

Где это не удается? Какой метод не называется? Некоторые особенности были бы замечательными. –

0

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

+0

как я использовал plist для оценки, изображений и подсказок ... так что мне нужно хранить все это текст меток в db? – Cgs

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