2013-03-17 50 views
5

我想呈現一個視圖控制器,並將其呈現形式設置爲表單表單。但是,當視圖控制器出現時,它位於屏幕的右側,而不是中心。我不知道爲什麼會發生這種情況,或者我應該做什麼。所有這些座標都是正確的!以表格形式呈現時難以居中視圖控制器

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

你有沒有搞亂自動旋轉機制?它看起來像工作表被放置在它將是如果模擬被轉動,所以主頁按鈕在右邊 – CodaFi 2013-03-17 04:53:05

+0

@CodaFi不,我沒有。該應用程序正在以縱向模式運行,並且這是該工作表所在的位置。當我刪除最後兩行代碼(負責調整頁面大小並居中)時,表格居中,但它不是我想要的大小(650 x 550)。 – 2013-03-17 19:59:33

回答

1

看來,每當我刪除了最後兩行,我得到了我承擔是您正在尋找的行爲。

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]; 

我不確定你想用這兩條線做什麼,但沒有它們,視圖居中。

+0

如何以不同的方式調整視圖大小?我希望它是650 x 550. – 2013-03-17 19:58:30

+0

看看這裏的答案:http://stackoverflow.com/questions/8972990/how-to-resize-a-modalviewcontroller-with-uimodalpresentationpagesheet – Jsdodgers 2013-03-17 21:05:01

+8

在iOS7 Beta 5上既沒有UIModalTransitionStyleFlipHorizo​​ntal或UIModalTransitionStyleCoverVertical似乎以表單居中。只有UIModalTransitionStyleCrossDissolve有效。 – 2013-08-23 14:27:57

相關問題