У меня есть UINavigationController, с которым пользователь перемещается.
При вставке определенного UIViewController в стек навигации на панели навигации появляется кнопка «Настройки». Когда пользователь нажимает эту кнопку, я бы хотел перевернуть текущий вид / контроллер, то есть все на экране, включая панель навигации, в представление настроек.
Итак, у меня есть SettingsViewController, к которому я хотел бы перейти из моего CurrentViewController, который находится в стеке navigationController.
Я получаю все виды странного поведения, пытаясь это сделать, UIViews, принадлежащие SettingsViewController, начнут анимироваться, скользя на место, навигационные кнопки перемещаются, ничто не действует так, как я думаю.
-(void)settingsHandler {
SettingViewController *settingsView = [[SettingViewController alloc] init];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
forView:self.navigationController.view
cache:YES];
[self.navigationController.view addSubview:settingsView.view];
[UIView commitAnimations];
}
Вышеуказанное приводит к тому, что представления корректно переворачиваются, но все подпредставления SettingsViewController располагаются в (0, 0) и после перехода они «защелкиваются» на месте?
Это потому, что я создаю и добавляю свои подпредставления в viewDidLoad, как это?
- (void)viewDidLoad {
UIImageView *imageBg = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)];
[imageBg setImage:[UIImage imageNamed:@"background.png"]];
[self.view addSubview:imageBg];
[imageBg release];
SettingsSubview *switchView = [[SettingsSubview alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)];
[self.view addSubview:switchView];
[switchView release];
[super viewDidLoad];
}
1: Как правильно выполнить переход «перевернуть», из UIViewController в UINavigationController, в новый UIViewController, а затем из нового UIViewController и обратно в «оригинальный» UIViewController, находящийся в стеке UINavigationControllers
2: Должен ли я использовать другой подход, чем метод "viewDidLoad", при создании экземпляра и добавлении подпредставлений в UIViewController?
- вопрос 2 - это скорее «лучшая практика». Я видел разные способы
делать это, и у меня возникают проблемы с поиском или пониманием документации жизненного цикла и различных тем и сообщений на эту тему. Я пропускаю примеры "лучших практик".
Большое спасибо за предоставленную помощь:)