0

問題は、次のコントローラにプッシュするときに私のホーム画面が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; 

そして、それは何が起こっているのかかなり確実ではない、それだが、任意のヘルプは大きな助けのおかげだろう。

+0

ただの推測ですが、背景のスレッドで実行されているUIコードのように見えます。ビュー間の移動を担当するコードを調べ、すべてがメインスレッド上で実行されているかどうかを確認します。 – lawicko

+0

上記のコードは、ユーザー名をクリックすると実行されるコードです。私は別のスレッドに何かをディスパッチしていません。そのコードの上に: - (IBAction)mcNameClicked:(id)送信者 { CGPoint buttonPosition = [送信者convertPoint:CGPointMake(5,5)toView:topTenMCTable]; NSIndexPath * indexPath = [topTenMCTable indexPathForRowAtPoint:buttonPosition]; NSInteger行= indexPathです。行; NSLog(@ "%ld行"、(長い)行); if(row> = 0) { –

+0

ユーザーがクリックして2番目のビューが読み込まれたときにいくつかのUI要素(ボタン/ラベルの設定)を渡すためにviewwillappearメソッドでコードを実行していた可能性があります同じ問題が発生したviewdidloadに移動しました。同じように。 –

答えて

0

私は設定画面として動作し、左側のメニューを、統合され、私がいることを信じている:私はポップとき、私は意味衝突言うとき

self.navigationController.interactivePopGestureRecognizer.delegate = self; 

そして、その左側のメニューは、衝突されました次のビューコントローラ、私はスタックのどこかにビューが絡まっていると信じています。だから私は別のビューに押すと、アプリは左のサイドメニューを使用するか、左側のメニューずにナビゲーションコントローラを使用するために、むしろ知らない...

ので、代わりの可能:

self.navigationController.interactivePopGestureRecognizer.delegate = self; 

は、私は私のviewwillappear方法でこのコードを配置することを決定した:

self.navigationController.interactivePopGestureRecognizer.delegate = self; 

NSUInteger viewControllerCount = self.navigationController.viewControllers.count; 

NSLog(@"viewControllerCount %ld", viewControllerCount); 

    if (viewControllerCount == 1) 
    { 

self.navigationController.interactivePopGestureRecognizer.enabled = NO; 
    } 
    else 
    { 

self.navigationController.interactivePopGestureRecognizer.enabled = NO; 
    } 

は私がプッシュするたびので、左側のメニューはアプリ内のすべての画面になります初期のナビゲーションコントローラにこのコードを配置して、I各画面に戻るボタンを実装したので、私はUINAVIGATIONBARを一番上に実装したくなかったので、画面の小さな部分も必要としていたので、私はUINAVIGATIONBARを実装したくありませんでした...

これは、同じ問題、幸運、幸せなコーディング。

関連する問題