Я хочу представить modal view controller. В iOS7 все работает нормально, но в iOS8 изменен контроллер рамки. Я прочитал несколько ответов, и одним из решений является установка preferredContentSize и modalPresentationStyle = UIModalPresentationFormSheet.Установить рамку iOS8 в ModalViewController с UIModalPresentationCustom
Но мне нужен мой modalPresentationStyle = UIModalPresentationCustom и я не могу установить контроллер рамки с этим стилем презентации.
Мой код:
- (void)presentViewController:(UIViewController*)viewController withCustomSize:(NSValue*) size withInitialSetup:(void (^)(void))setupBlock withCompletion:(void (^)(void))completion {
UiViewController * navCon = [[UIViewController alloc] initWithRootViewController:viewController];
navCon.shouldDismissKeyboardOnResign = YES;
if (SYSTEM_VERSION_LESS_THAN(IOS8)){
navCon.modalPresentationStyle = UIModalPresentationFormSheet;
navCon.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
} else {
navCon.modalPresentationStyle = UIModalPresentationCustom;
navCon.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}
[viewController setupCustomNavigationBar];
setupBlock();
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(IOS8)) {
navCon.transitioningDelegate = self;
if (size) {
CGSize sz = size.CGSizeValue;
navCon.preferredContentSize = CGSizeMake(sz.width, sz.height);
}else {
navCon.preferredContentSize = CGSizeMake(kPopupsWidth, kPopupsHeight);
}
}
[self presentViewController:navCon animated:YES completion:completion];
if (SYSTEM_VERSION_LESS_THAN(IOS8)) {
if (size) {
CGSize sz = size.CGSizeValue;
navCon.view.superview.bounds = CGRectMake(0, 0, sz.width, sz.height);
} else {
navCon.view.superview.bounds = CGRectMake(0, 0, kPopupsWidth, kPopupsHeight);
}
[navCon.view.superview.layer setCornerRadius: 8];
[navCon.view.superview.layer setBorderColor: [UIColor clearColor].CGColor];
[navCon.view.superview.layer setBorderWidth: 2];
[navCon.view.superview setClipsToBounds: YES];
}
}
Я установил preferedContentSize но кадр не меняется. Любая идея, почему это происходит?
Можете ли вы объяснить, что вы подразумеваете под «неправильным размером»? Может быть, представить картину того, о чем вы говорите? – InkGolem
Для iOS7 мой кадр {{0, 0}, {512, 410}}; Для iOS8 мой кадр {{0, 0}, {960, 688}}; Итак, в iOS8 рамка неправильная. – mrodriguez