2013-02-16 3 views
2

Я новичок в программировании для iphone. Я хотел бы спросить, как изменить яркость экрана для одного вида (контроллер). В настоящее время я использую это.Как изменить яркость для одного вида

- (void) loadView 
{ 
    [super loadView]; 

    userBrightness = [[UIScreen mainScreen] brightness]; 
    [[UIScreen mainScreen] setBrightness: 1.0]; 
} 

- (void) viewDidUnload 
{ 
    [super viewDidUnload]; 

    [[UIScreen mainScreen] setBrightness: userBrightness]; 
} 

Но я не могу использовать метод 'viewDidUnload', потому что он устарел. Я не знаю, как вернуть предыдущее значение подсветки, когда я переключаюсь на другое представление или прекращаю приложение. Спасибо

ответ

1

Изменение яркости при загрузке представлений слишком устойчиво, даже если ваше представление выключено, яркость не изменится на нормальные уровни. Помните, что концепция изменения яркости экрана является глобальным действием и не знает контекста, в котором он был изменен (в вашем случае, когда вы используете одно представление на экране). Я бы предложил прочитать документацию на particulars of the view lifecycle.

Вы можете использовать viewWillAppear и viewWillDisappear, что обеспечит необходимую детализацию.

+0

спасибо. Я пытался использовать методы 'viewWillAppear' и' viewWillDisappear' вместо 'loadView' и' viewDidUnload', но это не работает, если я скрываю/завершаю приложение. – user1518183

+0

В этом случае вам понадобится ваш контроллер просмотра для отслеживания уведомлений, когда приложение будет скрыто/отклонено, а также вернется к фокусу. Это будет действовать так, как будто диспетчер представлений исчезает и появляется. Подпишитесь на уведомления 'UIApplicationWillResignActiveNotification' и' UIApplicationDidBecomeActiveNotification', используя 'NSNotificationCenter' – WDUK

+0

Я думаю, что я понимаю. Большое спасибо. – user1518183

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