Chcę załadować drugi widok na początku programu. Myślałem, że metoda viewDidLoad będzie odpowiednią metodą. Problem polega na tym, że to nie działa.
Powodem, dla którego chcę załadować widok w metodzie viewDidLoad, jest to, że na nowym urządzeniu (iPadzie) można załadować widok nad innym widokiem.
Jak mogę to zrobić? Próbowałem tego, ale to nie działa:
- (void)viewDidLoad {
StartViewController * start = [[StartViewController alloc]initWithNibName:nil bundle:nil];
start.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
start.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:start animated:YES];
}
Próbowałem addSubview i działa, ale potem niemiłego przejścia. Dowolny pomysł? Próbowałem także obudzić FromNib. Nie jest to również pytanie o iPada, więc nie łamie nda. Jest to ogólne pytanie, jak załadować nowy widok w metodzie viewDidLoad (lub innej metodzie).
Odpowiedzi:
9 dla odpowiedzi № 1Działa to z viewDidAppear, a nie viewDidLoad. Widok musi się pojawić, aby inny mógł się przed nim pojawić. Poza tym mam ten sam kod w niektórych moich projektach, robi to, co opisujesz
0 dla odpowiedzi nr 2
Spróbuj użyć następującego kodu
- (void)viewDidLoad {
[super viewDidLoad];
//I mean after above line
if(![self isLogin]) {
//to login the user
[self gotoCredentials];
}
}
-(void)gotoCredentials {
Login *objLoginViewController=[[Login alloc] initWithNibName:@"Login" bundle:nil];
UINavigationController *objnavigationController = [[UINavigationController alloc]
initWithRootViewController:objLoginViewController];
objnavigationController.modalPresentationStyle=UIModalPresentationFormSheet;
[self presentModalViewController:objnavigationController animated:YES];
[objLoginViewController release];
objLoginViewController=nil;
[objnavigationController release];
objnavigationController=nil;
}
powyższy kod działa dla mnie dobrze