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];
    }
È stato utile?

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"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top