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

Я пытаюсь открыть контроллер модального представления в центре моего приложения для 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

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

Спасибо


person Leo    schedule 19.12.2011    source источник


Ответы (3)


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

navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:navigationController animated:YES];
person Mark Adams    schedule 19.12.2011
comment
Спасибо UIModalPresentationFormSheet было именно то, что я искал! - person Supertecnoboff; 21.07.2018

Вот решение с последней поддержкой 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);

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

person Adnan Aftab    schedule 20.09.2013

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

....

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;
person aslisabanci    schedule 19.12.2011
comment
да, это так. я использовал его в одном из моих проектов, как это. - person aslisabanci; 28.03.2013