Изменить IBOutlet на IBAction
- (IBAction) saveSettings:(id) sender
Это потому, что вы пытаетесь получить доступ к вашему объекту до вызова viewDidLoad. Вы должны подождать, пока не будет вызван viewDidLoad, для этого есть множество способов.
добавьте это в вашу функцию SettingViewController viewDidLoad
[[NSNotificationCenter defaultCenter] postNotificationName:@"SettingsViewDidLoad" object:nil];
и это для вашего ViewController вы хотите получить доступ к кнопке
- (void) loadSettingsController {
settingsViewController = [[SettingsViewController alloc] initWithNibName:@"SettingsView" bundle:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(initControls) name:@"SettingsViewDidLoad" object:nil];
}
-(void)initControls{
UIButton *button = settingsViewController.loginButton;
[button addTarget:self action:@selector(saveSettings:) forControlEvents:UIControlEventTouchUpInside];
}