Есть два хороших способа вы могли бы сделать это: 1) Делегирование и 2) viewWillAppear:
.
Для делегирования вам необходимо определить протокол. Ваш HomeViewController
будет delegate
для этого протокола, и ваш SettingsViewController
назовет его.
//SettingsViewController.h
@protocol SettingsDelegate <NSObject>
@required
-(void)colorChanged:(UIColor *)color;
@end
@interface SettingsViewController : UIViewController
@property (nonatomic, weak) id<SettingsDelegate> delegate;
@end
Где, когда параметры просмотр контроллер настроен, убедитесь, чтобы установить self.delegate
равную ссылку на HomeViewController
. Это обязательно.
Затем, когда ваш пользователь изменяет цвет, звоните:
[self.delegate colorChanged:whateverColor];
Ваш делегат должен, очевидно, соблюдать этот метод, а также изменить цвет соответствующим образом:
-(void)colorChanged:(UIColor *)color {
[myButton setBackgroundColor:color];
}
Для viewWillAppear:
, просто сохраните цвет где-нибудь и установите цвет своей кнопки в вашем методе контроллера вида для этого. viewWillAppear:
будет вызвана, когда ваши настройки просмотра собирается исчезать и показать контроллер домашнего просмотра:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[myButton setBackgroundColor:mySavedColor];
}
Вы можете сохранить выбранный цвет в 'переменной UIColor' и установить цвета кнопки для этой переменной. – NobodyNada