обновить UILabel в другом контроллере представления - PullRequest
0 голосов
/ 08 июля 2011

Привет, у меня есть приложение для викторины, которое дает вам оценку в UILabel после ответа на каждый вопрос, поэтому у меня есть кнопка, которая, когда вы нажимаете правильный ответ, вы получаете 10 баллов, а если вы нажмете неправильный ответ, вы получите 0 баллов,как перенести значение показателя int на следующий вопрос, который выдвигает navController.

Спасибо!

Ответы [ 5 ]

1 голос
/ 08 июля 2011

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

В приложении делегат объявляет свойство с именем счет .

И, в любом из ваших контроллеров представления,

YourAppDelegate *appDelegate;
appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.score += 10;
0 голосов
/ 08 июля 2011

Другой способ - использовать NSNotificationCenter . Таким образом, вы можете отправлять и получать данные / триггерные события в любом месте, не передавая их из класса в класс. Представьте, что это беспроводная передача.

0 голосов
/ 08 июля 2011

Другой способ - использовать статическую переменную с методом класса.

0 голосов
/ 08 июля 2011

Более понятный способ - передавать эти данные при нажатии нового контроллера представления:

UINextVC *vc = [[UINextVC alloc] initWithNibName:UINextVC andData:text]; //this'd be the label
[self.navigationController pushViewController:vc];
[vc release];

В противном случае, сделайте что-то подобное, прежде чем нажать:

vc.data = text;
0 голосов
/ 08 июля 2011

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

...