2013-10-01 4 views
1

Я только что начал изучать программирование на ios.Как установить размер модального окна

Я хочу показать модальное окно определенного размера при запуске моего приложения. Итак, на мой взгляд, контроллер, я написал этот код.

-(void)viewDidAppear:(BOOL)animated{ 

    ModalViewController *modal; 
    modal = [[ModalViewController alloc] init]; 
    modal.modalPresentationStyle = UIModalPresentationFormSheet; 
    modal.view.frame = CGRectMake(0, 0, 100, 100); 

    [self presentViewController:modal animated:YES completion:nil]; 
} 

С помощью этого кода появляется модальное окно, но оно отображается с размером, соответствующим размеру экрана.

Я хочу, чтобы мое модальное окно показывалось с размером, на который я установлен.

Как я могу заставить его работать?

спасибо, что заблаговременно !!

ответ

0

Попробуйте

- (void)viewWillLayoutSubviews{ 
    [super viewWillLayoutSubviews]; 
    self.view.superview.bounds = CGRectMake(0, 0, <width>, <height>); 
} 

или

ViewController.modalPresentationStyle = UIModalPresentationFormSheet; 
ViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[self presentViewController:ViewController animated:YES completion:nil]; 
ViewController.view.superview.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; 
ViewController.view.superview.frame = CGRectMake(
                    // Calcuation based on landscape orientation (width=height) 
                    ([UIScreen mainScreen].applicationFrame.size.height/2)-(320/2),// X 
                    ([UIScreen mainScreen].applicationFrame.size.width/2)-(320/2),// Y 
                    320,// Width 
                    320// Height 
                    ); 

или Попробуйте заменить последнюю строку с этим

ViewController.view.superview.bounds = CGRectMake(0, 0, 320, 320); 
+0

Благодарим вас за поддержку! Я копирую код выше и вставляю его в свой диспетчер вида, но это не изменило ситуацию. Должен ли я сохранить свой код, который я разместил, и добавить код в тот же контроллер? – crzyonez777

+0

Кстати, этот контроллер просмотра добавлен в контроллер навигации в AppDelegate.m. Я не знаю, имеет ли это значение. – crzyonez777

0

вы можете попробовать это:

-(void)viewDidAppear:(BOOL)animated{ 

ModalViewController *modal=[[LoginViewController alloc] init]; 
modal.view.frame = CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height); 
modal.modalPresentationStyle = UIModalPresentationFormSheet; 

[self presentViewController:modal animated:YES completion:nil]; 
} 

надеюсь, что эта помощь

+0

Благодарим вас за поддержку! Я пробовал ваш код, но он не работал. имеет значение, что этот контроллер представления добавлен в контроллер навигации в appDelegate.m? – crzyonez777

Смежные вопросы