0

私のアプリには、ユーザーがアプリを登録していない連絡先に SMS を送信して招待できるようにする機能があります。数週間前に次のように実装しましたが、うまく機能します。

if ([MFMessageComposeViewController canSendText]) {
    MFMessageComposeViewController *controller = [MFMessageComposeViewController new];
    NSDictionary *contact = self.notRegisterdUser[index]; // got from reading user's contacts if allowed
    controller.recipients = @[contact.allKeys[0]];
    controller.body = @"some message";
    controller.messageComposeDelegate = self;

    [self presentViewController:controller animated:YES completion:nil];
}

しかし、昨日、次のような [キャンセル] ボタンが表示されなかったため、機能が壊れていることがわかりました。

MFMessageComposeViewController の問題

iOS 8.1、8.2、8.3、および 8.4 でテストしましたが、すべてに存在します。何か変わったことがありますか、それとも間違っていましたか?

4

1 に答える 1

2

forkingdogの FDFullscreenPopGestureを使用していますか? もしそうなら、これが問題です。FDFullscreenPopGesture カテゴリは、どういうわけか、ポップアップされた SMS ビューと競合しました。それについての話題があります。

解決策は問題で提供されており、私は確認しました:

MFMessageComposeViewController を使用する場合は無効にする必要があります。fd_viewControllerBasedNavigationBarAppearanceEnabled を NO に設定しても機能しないことに注意してください。一時的な解決策は次のとおりです。

(void)fd_pushViewController:(UIViewController *)viewController animated:(BOOL)animated { 
    //Add this: 
    if ([self isKindOfClass:[MFMessageComposeViewController class]]) { 
        [self fd_pushViewController:viewController animated:animated];
        return; 
    } 
    ...... 
}

遅い答えかもしれませんが、他の人にも役立つことを願っています。

于 2016-02-16T23:06:11.163 に答える