問題は、次のコントローラにプッシュするときに私のホーム画面がUINavigationControllerでラップされていますが、次に左スワイプを使用してホーム画面は、次のコントローラに私を連れて行くためにボタンをクリックします。ビューコントローラが表示されたようにコードが実行されているように見えますが、画面上には表示されません。UINavigation PushViewControllerは次のビューを表示しませんがコードを実行します
この時点で、UI全体が応答しなくなりました。私は別のページに戻りたいのですが、これはファンキーになります。私が表示しようとしていた画面が画面の右側から見えるようにスライドします。
ホームビューをリロードすると、アプリケーションは設計どおりに動作します。
以下は...この事で起こっていただきました!私は見当がつかないは、次のビューを提示するための私のコードです:
NextViewController *nextViewController = (NextViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"NextViewController"];
nextViewController.nameString = [[self.topArray objectAtIndex:[indexPath row]] objectForKey:@"Name"];
nextViewController.championMCID = [[self.topArray objectAtIndex:[indexPath row]] objectForKey:@"UserId"];
[self.navigationController pushViewController:nextViewController animated:YES];
私は、navigationbarを隠してるので、私は次の画面に取得するとき以下を設定しています:
[[self navigationController]setNavigationBarHidden:YES animated:NO];
self.navigationController.interactivePopGestureRecognizer.delegate = self;
そして、それは何が起こっているのかかなり確実ではない、それだが、任意のヘルプは大きな助けのおかげだろう。
ただの推測ですが、背景のスレッドで実行されているUIコードのように見えます。ビュー間の移動を担当するコードを調べ、すべてがメインスレッド上で実行されているかどうかを確認します。 – lawicko
上記のコードは、ユーザー名をクリックすると実行されるコードです。私は別のスレッドに何かをディスパッチしていません。そのコードの上に: - (IBAction)mcNameClicked:(id)送信者 { CGPoint buttonPosition = [送信者convertPoint:CGPointMake(5,5)toView:topTenMCTable]; NSIndexPath * indexPath = [topTenMCTable indexPathForRowAtPoint:buttonPosition]; NSInteger行= indexPathです。行; NSLog(@ "%ld行"、(長い)行); if(row> = 0) { –
ユーザーがクリックして2番目のビューが読み込まれたときにいくつかのUI要素(ボタン/ラベルの設定)を渡すためにviewwillappearメソッドでコードを実行していた可能性があります同じ問題が発生したviewdidloadに移動しました。同じように。 –