Откройте Modal View с контроллером навигации в центре приложения iPad - PullRequest
2 голосов
/ 19 декабря 2011

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

4 голосов
/ 20 декабря 2011

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

navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:navigationController animated:YES];
3 голосов
/ 20 сентября 2013

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

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

0 голосов
/ 20 декабря 2011

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

....

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