Привет всем :) У меня небольшая проблема, и я хотел бы узнать из вашего опыта, как бы вы справились с этим.
Мой главный экран - это экран входа в систему и после успешного входа в системуЯ инициализирую новый вид и переключаюсь на него следующим образом, который я нашел здесь на SO:
// Switch views
[txtUser resignFirstResponder];
[txtPass resignFirstResponder];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:[self view] cache:YES];
[UIView setAnimationDuration:0.6];
UIViewController *homeView = [[[UIViewController alloc] initWithNibName:@"HomeView" bundle:nil] autorelease];
[self.view insertSubview:homeView.view atIndex:0];
[UIView commitAnimations];
После входа в систему я не хочу переключать вид, когда устройство вращается, но "willRotateToInterfaceOrientation" неничего не поймает в моем подвиде, оно ловит только если я помещаю это в родительский.
Так что я думал о трех вариантах
- Найти способ поймать это вращениесобытие внутри вложенного представления
- После входа в систему полностью переключите представления, а не просто добавьте их в качестве вспомогательного представления (чтобы он сам был родительским?) - я не знаю, возможно ли это, а если - не уверенкак это сделать, но я хотел бы услышать ваш опыт.
- Найдите какой-нибудь способ перейти к этому повернутому представлению от родителей (что, я думаю, не очень хороший вариант)
Простите, если яего немного запутали, надеюсь, вы понимаете, и если нет, я бы хотел разработать и добавить больше необходимой информации, если таковая требуется:)
Заранее спасибо, Шай.
Править: Я добавил навигационный контроллер, как предложил @Ahmed, и выдвинул новое представление, но вместо HomeView.xib у меня появляется пустое серое представление. Возможно, есть какие-нибудь идеи по этому поводу?
На AppDelegate.h
<- language: lang-cpp ->
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
На AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
self.window.rootViewController = self.viewController;
// Initialize navigation controller
UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:self.window.rootViewController];
self.navigationController = aNavigationController;
[aNavigationController release];
[_window addSubview:[_viewController view]];
[self.window makeKeyAndVisible];
return YES;
}
А затем, после успешного входа в систему, я попытался
// Switch views
[txtUser resignFirstResponder];
[txtPass resignFirstResponder];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:[self view] cache:YES];
[UIView setAnimationDuration:0.6];
UIViewController *homeView = [[[UIViewController alloc] initWithNibName:@"HomeView" bundle:nil] autorelease];
[self.navigationController pushViewController:homeView animated:YES];
[self dismissModalViewControllerAnimated:YES];
[UIView commitAnimations];
Но я получаю пустой серый вид (как новый) вместо моего HomeView ... есть идеи, как это могло случиться?...
Еще раз спасибо вам, ребята, спасатели!