Popup在iPhone 4s中没有正常显示

时间:2015-06-03 12:34:12

标签: ios uialertcontroller

使用下面的代码后,弹出窗口在iPhone 4s,iPad等设备上无法正常显示....它可以在iPhone 6中正常使用。

以下是代码,

UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];

UIAlertAction* ok = [UIAlertAction actionWithTitle:@"Set Bookmark" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
    Definition *toBookmark = [appDelegate.encyclopedia getByIdxTerm:mydef.idxterm];

    BOOL bBook = [[appDelegate prefsdb] addBookmark:[[appDelegate encyclopedia] objectInListAtIndex:toBookmark.encIdx]];

    [alert1 dismissViewControllerAnimated:YES completion:nil];
}];
UIAlertAction* cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
    [alert1 dismissViewControllerAnimated:YES completion:nil];
}];

[alert1 addAction:ok];
[alert1 addAction:cancel];
[self presentViewController:alert1 animated:YES completion:nil];

之前我使用的UIActionsheet在iOS 8中已被弃用....我正在使用iOS 8。

来自iPhone 4s的

屏幕截图

enter image description here

来自iPhone 5的截图

enter image description here

它应该像iphone5一样....请帮助

2 个答案:

答案 0 :(得分:0)

添加高度约束可能会修复它:

NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:alert1.view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationLessThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:self.view.frame.size.height];
[alert1.view addConstraint:constraint];

答案 1 :(得分:0)

替代解决方案:将preferredStyle:UIAlertControllerStyleActionSheet更改为preferredStyle:UIAlertControllerStyleAlert,如果您不介意布局设计。