3

最終編集

さらに調査した結果、特定の問題に関する詳細情報を記載して質問を再投稿するのが最善だと思いました。

この問題は iOS7 でのみ発生するようです。私は iOS6 でテストしましたが、これは問題なく動作します。

-- セットアップ セットアップは 1 つUIViewController(たとえば最初の VC) です。これは tableView を保持し、データソース/デリゲートです。tableView のセルが選択/タップされると、2 番目のビュー コントローラーへのセグエが実行されます (これは今のところ空である可能性があります)。

問題

問題は、セグエがすぐに発生しないことです。予想通り1秒以内。セグエで渡されるデータや、2 番目のビュー コントローラーに読み込まれるデータがないため、すぐに処理されることが期待されます。

場合によっては、これで問題なく動作することがあります。また、セルをクリックしても何も起こらない場合もあります。

--気づいた傾向 私が気づいたのは、「問題」が発生したときです。シミュレーター/デバイスは、次の分が始まるまで待機し、モーダル ビュー コントローラーの負荷を強制します。または、問題が発生した場合は、デバイス画面の任意の場所をクリックまたはタップして、ロードを「強制」できます。

この問題は、基本的なものだけを使用して新しいプロジェクトで再現できます。これを含むサンプル プロジェクトの zip をアップロードしました

追加コード (必要な場合)

カスタムセルセットアップがあります。セルが選択されたら、次を実行します。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%s",__PRETTY_FUNCTION__);

    if (indexPath.section == 0) {
        [self performSegueWithIdentifier:@"selectGameTurnDiff" sender:self];
    } 
}

次に、prepareForSegue に次のものがあります。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"%s",__PRETTY_FUNCTION__);
    [super prepareForSegue:segue sender:sender];
}

ロギング

これを示すログの例を次に示します。 Run 1
2013-10-09 23:54:09.855 App[14954:a0b] -[FirstViewController tableView:didSelectRowAtIndexPath:]
2013-10-09 23:54:09.857 App[14954:a0b ] -[FirstViewController prepareForSegue:sender:]
2013-10-09 23:55:00.004 App[14954:a0b] -[SecondViewController viewDidLoad]
2013-10-09 23:55:00.004 App[14954:a0b] -[SecondViewController viewWillAppear :]
2013-10-09 23:55:00.511 App[14954:a0b] -[SecondViewController viewDidAppear:]

実行 2
2013-10-09 23:56:21.900 App[14954:a0b] -[FirstViewController tableView:didSelectRowAtIndexPath:]
2013-10-09 23:56:21.901 App[14954:a0b] -[FirstViewController prepareForSegue:sender:]
2013-10-09 23:57:00.003 App[14954:a0b] -[SecondViewController viewDidLoad]
2013-10-09 23:57:00.003 App[14954:a0b] -[SecondViewController viewWillAppear:]
2013-10-09 23: 57:00.508 アプリ[14954:a0b] -[SecondViewController viewDidAppear:]

実行 3
2013-10-09 23:57:43.387 App[14954:a0b] -[FirstViewController tableView:didSelectRowAtIndexPath:]
2013-10-09 23:57:43.388 App[14954:a0b] -[FirstViewController prepareForSegue:sender:]
2013-10-09 23:58:00.004 App[14954:a0b] -[SecondViewController viewDidLoad]
2013-10-09 23:58:00.004 App[14954:a0b] -[SecondViewController viewWillAppear:]
2013-10-09 23: 58:00.510 App[14954:a0b] -[SecondViewController viewDidAppear:]

4

1 に答える 1