Не удается изменить стиль представления и перехода модальных представлений в Xcode (iPad) - PullRequest
6 голосов
/ 12 октября 2011

У меня сейчас проблемы с модальными представлениями и всплывающими окнами.Это может быть та же самая проблема, но я не уверен.

Проблема, с которой я сталкиваюсь с модальными представлениями, состоит в том, что я не могу изменить анимацию или стиль перехода.Например, я пишу

self.modalPresentationStyle = UIModalPresentationPageSheet;
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:IpModal animated:YES];

, но модальное представление по-прежнему отображается в полноэкранном режиме с оригинальным стилем перехода.

Кроме того, проблема, с которой я сталкиваюсь с поповерами, довольно похожа.Несмотря на то, что я вызываю метод dismissPopover: animated: с параметром «NO», переход по-прежнему анимирован.

Заранее спасибо.

Ответы [ 4 ]

25 голосов
/ 12 октября 2011

modalPresentationStyle и modalTransitionStyle применяются к контроллеру представления, который должен быть представлен модально , а не контроллер, выполняющий представление.

Ваш код должен быть

IpModal.modalPresentationStyle = UIModalPresentationPageSheet;
IpModal.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:IpModal animated:YES];
4 голосов
/ 01 сентября 2012

Я сделал это на заказ.

UIViewController* src = self.sourceViewController;
UIViewController* dst = self.destinationViewController;

src.modalPresentationStyle = UIModalTransitionStyleFlipHorizontal;
dst.modalPresentationStyle = UIModalTransitionStyleFlipHorizontal;
[src presentModalViewController:dst animated:YES];
3 голосов
/ 24 сентября 2012
#import yourViewController.m //already present
#import destinationVieController.m //to be added by programmer

//custom function to call destination controller

-(void)callDestinationViewController{

    destinationViewController *dest = [[destinationViewController alloc] initWithNibName:@"destinationViewController" bundle:nil];

    dest.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:dest animated:YES];

  }

//custom function can be called on event fire or action call

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

1 голос
/ 12 октября 2011

Возможно, вы можете попробовать использовать один из этих двух методов для представления контроллера поповера, в зависимости от того, где вы хотите, чтобы он появился, а не presentModalViewController:animated:.

– presentPopoverFromRect:inView:permittedArrowDirections:animated:
– presentPopoverFromBarButtonItem:permittedArrowDirections:animated:
...