質問

は、iOS 5.1のように見え、ユーザを優先してナビゲートするための標準のURLエンコーディングが切断されました。

例えば:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
.

IOS 5.0では動作しませんが、iOS 5.1(デバイスとシミュレータの両方)ではありません。

誰かがiOS 5.1でこの機能を複製する方法を見つけましたか?

役に立ちましたか?

解決

いいえこの機能を複製する方法はわかりません。

しかしあなたができることは復元を要求するレーダーをファイルです。 スキームが最初の場所で文書化されるようにレーダー要求です。

David Barnard IOS 5.1を確認しています設定アプリのURLスキームを分割します。


アップデート iOS 8が同様の機能を持っています。ありがとうapple、 Mike soto_ighost

定数 UIApplicationOpenSettingsURLString(UIApplication Documentation)はアプリの設定を開き、Twitterの設定を言うのではありません。正確に同じ機能ではなく、以前よりも掃除機が正式に認識されています。

これは、各アプリがプライバシー、携帯データ、バックグラウンドアプリの更新と通知を使用するための設定の場所を持っているように特別に便利です。

他のヒント

それは小さく、*TWTWeetComposeViewController*のサブビューの削除によって取得されるので、ユーザーがログインしていないときにアラートのみを表示し、[設定]ボタンをクリックすると、アプリの設定ページを開くことができます。

     + (void)setAlertForSettingPage :(id)delegate 
    {
     // Set up the built-in twitter composition view controller.
        TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];


        // Create the completion handler block.
        [tweetViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result) {
            [delegate dismissModalViewControllerAnimated:YES];
        }];

        // Present the tweet composition view controller modally.
        [delegate presentModalViewController:tweetViewController animated:YES];
        //tweetViewController.view.hidden = YES;
        for (UIView *view in tweetViewController.view.subviews){
            [view removeFromSuperview];
        }

     } 
.

ここでは、ViewController内でこのメソッドを使用している場合は、DelegateがViewControllerである場合は、selfの代わりにdelegateを使用してください。

編集:廃止予定のエラーを取得する場合は、代わりに次のIOS6互換コードを使用してください。

- (void)setAlertForSettingPage
{
    // Set up the built-in twitter composition view controller.
    SLComposeViewController *tweetViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

    // Present the tweet composition view controller modally.
    [self presentViewController:tweetViewController animated:YES completion:nil];
    for (UIView *view in tweetViewController.view.subviews){
        [view removeFromSuperview];
    }
}
.

これを行うことができます。

TWTweetComposeViewController *ctrl = [[TWTweetComposeViewController alloc] init];
                    if ([ctrl respondsToSelector:@selector(alertView:clickedButtonAtIndex:)]) {
                        // Manually invoke the alert view button handler
                        [(id <UIAlertViewDelegate>)ctrl alertView:nil
                                             clickedButtonAtIndex:0];
                    }
.

Twitterのフレームワーク(Twitter View Controller)を見ると、「prefs:root= twitter」があります。内部には5.1にもこの行があります。それでは、PlistやMethod "OpenURL"のいくつかの特別な鍵のように、Appleが他のアプリのためにそれを無効にするようなものを作った。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top