UIModalPresentationFormSheet, dim отсутствует - PullRequest
2 голосов
/ 25 февраля 2011

Я пытаюсь отобразить модальный viewController в приложении для iPad, используя стиль представления UIModalPresentationFormSheet. Я пытаюсь создать нечто похожее на новое сообщение пользовательского интерфейса / анимации приложения Почта.

Есть две вещи, которые ведут себя неправильно: Представляемый модальный viewController всегда анимируется до y = 0, то есть до самого верха просматривать, а не несколько пикселей под строкой состояния, как в почтовом приложении.

Документация гласит:

UIModalPresentationFormSheet Ширина и высота представленного вида меньше, чем у экрана и вид центрируется на экране. Если устройство в ландшафте ориентация и клавиатура видна, позиция вида отрегулировано вверх так, чтобы вид остается видимым Все открытые площадки затемнены, чтобы предотвратить взаимодействуя с ними.

Однако в моем случае нет димминга, и я все еще могу взаимодействовать с parentView под modalViewController.

Контроллер, который представляет modalView Я делаю это:

AddNewItemViewController *newItemViewController = [[AddNewItemViewController alloc] initWithNibName:@"AddNewItemViewController" bundle:nil];
[self presentModalViewController:newItemViewController animated:YES];
[newItemViewController release];

В представляемом viewController я делаю это:

- (void)viewDidLoad {

    [nameField becomeFirstResponder];
    [self setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
    [self setModalPresentationStyle:UIModalPresentationFormSheet];
    [super viewDidLoad];
}

Надеюсь, кто-нибудь может мне помочь.

Есть ли какие-то другие свойства, которые мне нужно установить для родителя и modalViewController?

Не является ли viewDidLoad подходящим местом для этой настройки?

Заранее спасибо:)

1 Ответ

3 голосов
/ 25 февраля 2011

Вы устанавливаете стили перехода и представления при создании модального представления перед вызовом presentModalViewController.Помните, что представление, которое создает модальное представление, «владеет» этим объектом.Вы хотите, чтобы владелец установил эти свойства, потому что вы могли бы реализовать это модальное представление в другом месте приложения и хотеть другие стили перехода или представления.Таким образом, вы устанавливаете его каждый раз, когда это необходимо.

    AddNewItemViewController *newItemViewController = [[AddNewItemViewController alloc] initWithNibName:@"AddNewItemViewController" bundle:nil];
    newItemViewController.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentModalViewController:newItemViewController animated:YES];
    [newItemViewController release];

Вы правы, вызывая становление становления-поворота в viewDidLoad.

...