2013-03-17 6 views
5

Próbuję przedstawić kontroler widoku z jego stylem prezentacji ustawiony na arkusz formularza. Jednak po pojawieniu się kontrolera widoku jest on umieszczony po prawej stronie ekranu, a nie w środku. Nie jestem pewien, dlaczego tak się dzieje lub co powinienem zrobić. Wszystkie te współrzędne są poprawne!Trudności z centrowaniem kontrolera widoku, gdy jest wyświetlany jako arkusz formularza

CGSize size = CGSizeMake(650, 550); 

//custom init for ViewController so I can position stuff correctly 
ViewController *vc = [[ViewController alloc] initWithSize:size]; 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; 

nav.modalPresentationStyle = UIModalPresentationFormSheet; 
nav.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

[self presentModalViewController:nav animated:YES]; 

nav.view.superview.frame = CGRectMake(0, 0, size.width, size.height); 
nav.view.superview.center = self.view.center; 

enter image description here

+0

Czy bałagan z mechanizmem automatycznego obracania? Wygląda na to, że arkusz znajduje się w miejscu, w którym byłby, gdyby Sim został obrócony, tak aby przycisk strony głównej był po prawej. – CodaFi

+0

@CodaFi Nie, nie mam. Aplikacja działa w trybie portretowym i tam właśnie znajduje się arkusz. Kiedy usuwam dwa ostatnie wiersze kodu (odpowiedzialny za zmianę rozmiaru arkusza i jego centrowanie), arkusz jest wyśrodkowany, jednak nie jest to rozmiar, który chcę (650 x 550). –

Odpowiedz

1

Wydaje się, że ilekroć usunąć ostatnie dwie linie, mam co mam zakładać być zachowanie, które szukasz.

CGSize size = CGSizeMake(650, 550); 

//custom init for ViewController so I can position stuff correctly 
ViewController *vc = [[ViewController alloc] initWithSize:size]; 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; 

nav.modalPresentationStyle = UIModalPresentationFormSheet; 
nav.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

[self presentModalViewController:nav animated:YES]; 

Nie jestem dokładnie pewien, co próbujesz zrobić z tymi dwoma liniami, ale bez nich widok jest wyśrodkowany.

+0

Jak inaczej zmienić rozmiar widoku? Chcę, żeby było to 650 x 550. –

+0

Spójrz na odpowiedź tutaj: http://stackoverflow.com/questions/8972990/how-to-resize-a-modalviewcontroller-withu-imodalpresentationstrony stron – Jsdodgers

+8

Na iOS7 Beta 5 ani UIModalTransitionStyleFlipHorizontal lub UIModalTransitionStyleCoverVertical wydaje się mieć wyśrodkowane arkusze formularzy. Działa tylko UIModalTransitionStyleCrossDissolve. –

Powiązane problemy