Cambiando guarda con orientamento diverso
-
08-10-2019 - |
Domanda
Ecco il mio problema: La mia applicazione ha una barra degli strumenti in cui è possibile passare. Il principale, o almeno quella sul lancio è in modalità paesaggio, quindi se si va in qualsiasi altro punto di vista è in ritratto. Il problema nasce quando si tenta di tornare alla prima (paesaggio), le appare visualizzazione in verticale, quindi tutti di vista è sbagliato visualizzato. (E 'più o meno chiaro? Scusate se sembra disordinato). Alcuni codice che ho qui:
V1Controller:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
V2Controller:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(IBAction)goToV1 {
V1Controller *v1 = [[V1Controller alloc] init];
[self.view.superview addSubview:v1.view];
}
Forse fare qualcosa con la v1 oggetto prima di aggiungere la vista? Non lo so, bisogno del vostro aiuto.
su Problema risolto Nella transizione vista mi mancava una frase, togliere la vista corrente dal superview. Anche ciò che @Brad stava dicendo. Grazie.
-(IBAction)goToV1 {
V1Controller *v1 = [[V1Controller alloc] init];
[self.view.superview addSubview:v1.view];
[self.view removeFromSuperview];
}
Soluzione
Quando si dice:
return (interfaceOrientation == UIInterfaceOrientationPortrait);
Stai permettendo così di essere ruotato solo di ritratto.
Se si desidera ruotare al ritratto e poi di nuovo per verde, a tornare "SI".
applica la stessa logica quando si dice
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
si sta effettivamente dicendo: "Lascia che sia così uno ruotato - ma non di nuovo dall'altra parte"