2

Я пытаюсь открыть контроллер модального просмотра в центре приложения iPad.Открыть Modal View с контроллером навигации в центре приложения iPad

Это то, что я делаю в моем коде

Settings_iPad *vController = [[Settings_iPad alloc] 
              initWithNibName:@"Settings_iPad" bundle:nil]; 

    vController.modalPresentationStyle = UIModalPresentationFormSheet; 

    // Create a Navigation controller 
    UINavigationController *navController = [[UINavigationController alloc] 
              initWithRootViewController:vController]; 

    // show the navigation controller modally 
    [self presentModalViewController:navController animated:YES]; 

    // Clean up resources 
    [navController release]; 
    [vController release]; 

Это то, что я получаю http://www.use.com/48bcd41a28a13b562140

Как я могу открыть это окно красиво с меньшим размером в центре окна.

Благодаря

ответ

3

Установите modalPresentationStyle по навигации контроллера, чтобы быть UIModalPresentationFormSheet и представить его покадрово.

navigationController.modalPresentationStyle = UIModalPresentationFormSheet; 
[self presentModalViewController:navigationController animated:YES]; 
0

Вы можете сделать что-то вроде этого: После представления модально вид контроллера, установите его размер до нужного размера, а затем в центр.

....

navController.modalPresentationStyle = UIModalPresentationFormSheet; 
[self presentModalViewController:navController animated:YES]; 
//these two lines are if you want to make your view smaller than the standard modal view controller size 
navController.view.superview.frame = CGRectMake(0, 0, 200, 200); 
navController.view.superview.center = self.view.center; 
+0

совершенно не уверен, что это работает ... не похоже? – topwik

+0

yep. Я использовал его в одном из моих проектов. – aslisabanci

3

Вот решение с новейшей поддержкой iOS 7!

navController.modalPresentationStyle = UIModalPresentationStylePageSheet; // can be form sheet also 
navController.modalTransitionStyle = UIModalTransitionStyleCrossDisolve;// in IOS 7 no other style let you resize your view controller's frame. 
/* important step*/ 
self presentViewController:navController animated:YES completion:^{//any code you want};];// from iOS 6 onward this is supported 
// now set size of the viewcontroller, if you will set before presenting it will simply ignore. 
navController.view.superView.frame = CGRectMake(x,y,width,height); 
navController.view.superView.center = CGPointMake (x, y); 

Надеюсь, это поможет вам.