2015-10-20 4 views
8

私はiOS開発の初心者です。私は(絵コンテが空で、ストーリーボードで唯一の1のボタンがあります)ボタンがクリックされたときにUIAlertControllerを表示しようとしていた、コードXCODE iphone 6 plusと6s plusは、表示時に警告を表示します。UIAlertViewController

@IBAction func showAlert(sender: UIBarButtonItem) { 
    let alert = UIAlertController(
    title: "Create new", 
    message: "Hi", 
    preferredStyle: UIAlertControllerStyle.Alert 
) 

    let createAction = UIAlertAction(title: "Ok", style: .Default, handler: nil) 
    let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil) 

    alert.addAction(createAction) 
    alert.addAction(cancelAction) 
    alert.addTextFieldWithConfigurationHandler { 
    $0.placeholder = "Test placeholder" 
    } 

    presentViewController(alert, animated: true, completion: nil) 
} 

iphone 5、5S、6未満に使用して、6Sは、警告が表示されません、しかし、iPhoneの6plusと6Sプラス示す

2015年10月20日22警告:38:54.007でTestApp [3128:48601〕ためUICollectionViewFlowLayoutが定義されていない の挙動: 2015年10月20日22:38 :54.008 TestApp [3128:48601]項目の高さは、UICollectionViewの高さからセクションのインセットの高さを差し引いた高さの より小さくなければなりません下の の値からコンテンツの上下の値を差し引いた値。 2015年10月20日 22:38:54.008でTestApp [3128:48601]関連 UICollectionViewFlowLayoutインスタンスが < _UIAlertControllerCollectionViewFlowLayoutある:0x7fd6b8582d90>、およびそれ が接続されています。層=; contentOffset:{0、 0}; contentSize:{0、0}>コレクションビューのレイアウト: < _UIAlertControllerCollectionViewFlowLayout:0x7fd6b8582d90>。

UIAlertControllerのテキストフィールドを削除するか、テキストフィールドを表示したままにして2つのボタンを削除すると、警告が表示されません。これがどうして起こるのか?どのように警告を修正するには?

+0

これは愚かかもしれませんが、2つのアクションの前にテキストフィールドを追加してみてください。 – rmaddy

+1

@rmaddyそれでも警告が表示されます。とにかく2つのテキストフィールドを追加しようとしましたが、すべてのプラットフォームで警告が表示されないので、2つのアクション( 'Default'と' Cancel')を追加する前と後に追加しました –

+2

Appleにバグを送信してください。問題を示す簡単なテストアプリを含めてください。 – rmaddy

答えて

18

試してみてください。

yourAlertController.view.setNeedsLayout() 

だけpresentViewController:

編集でそれを提示する前に:私はまた、唯一のiphon6プラスのための私の画面で同じ問題を持っていたアップル

+1

これは警告を取り除きます - この行は必要ではないので、まだAppleにバグを提出する必要があります。 – Sidetalker

+1

@Sidetalkerそれをやった! –

+0

それでした!ありがとう:) – Sidetalker

0

にこのバグを提出しました画面。タイトルが空の場合は、空のタイトルを渡していない場合は、確認してください、のようにnilを渡し:

UIAlertController *confirmAlert = [UIAlertController alertControllerWithTitle:nil message:displayMessage preferredStyle:UIAlertControllerStyleAlert]; 

代わりに、それは私の問題を修正し

UIAlertController *confirmAlert = [UIAlertController alertControllerWithTitle:@"" message:displayMessage preferredStyle:UIAlertControllerStyleAlert]; 

の。幸運..

関連する問題