iOS8 の MFMessageComposeViewController で奇妙なバグに遭遇しました。これは、自分のアプリ内でのみ再現可能です。現在、App Store でアプリに影響を与えています。このアプリは、iOS8 で実行される iOS7 SDK と、私自身のテスト デバイス (iPhone および iPad) の iOS8 SDK で構築されています。
問題は、MFMessageComposeViewController を起動すると、テキスト フィールドや [送信] ボタンのないコントローラーが表示されることです。iOS7 と iOS8 の間でコードを変更していないので、なぜこれが起こっているのかわかりません。コード自体は非常に単純です。
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;
[picker setRecipients: @[@"5551112222"]];
[picker setBody: @"Test"];
[self presentViewController:picker animated:YES completion: ^{
NSLog(@"MFMessageComposeViewController completion handler");
}];
これは次のようになります。
回避策として何を試すことができるかについてのアイデアはありますか? 完了ハンドラーで textField と受信者を設定しようとしました。最上位のView ControllerでbecomeFirstResponderを呼び出してみました; 運がない。繰り返しますが、これは iOS7 で完全に正常に動作していました。
編集:
MFMessageComposeViewController
だから私はこのリンクからApple自身のサンプルコードを見つけました: https://developer.apple.com/library/ios/samplecode/MessageComposer/Listings/MessageComposerViewController_m.html
このアプリをビルドして実行すると、 がMFMessageComposeViewController
完全に表示され、電話番号とテキスト フィールドの事前入力も同様に機能します。しかし、彼らのファイルを自分のアプリにコピーし、ストーリーボードをメインのストーリーボードにして、[SMS の作成] ボタンを押すと、まったく同じ問題が発生します。
ここで何が起こっているのですか?非常に混乱。メッセージ コンポーザーが正しく表示されないのは、自分のアプリの構成のせいでしょうか?