1

何かをナビゲーション コントローラにプッシュしてからメイン ページに戻ると、メイン ページのスクロールビューが機能しなくなります。まだナビゲーションコントローラーに何もプッシュせずにアプリケーションを再度開くと、正常に動作します。scrollview は、フレームを超えて広がる水平スクロールビューです。iOSでアプリケーションを切り替えるときのように、ボタンをスクロールするために使用します(iOSマルチタスク)。

これは、新しいVCをプッシュするコードです

    UIViewController *newVC = [[UIViewController alloc] init];    
    UILabel *label = [[UILabel alloc] initWithFrame:self.view.bounds];
    [label setTextAlignment:NSTextAlignmentCenter];
    label.text = [NSString stringWithFormat:@"promo %i detail view",[sender tag]];
    label.backgroundColor = [UIColor whiteColor];
    [newVC.view addSubview:label];

    [self.navigationController setNavigationBarHidden:NO animated:NO];
    [self.navigationController pushViewController:newVC animated:YES];

そのView Controllerがポップされ、Navigation Controllerがメインページに戻ると、navigationBarが非表示になります。

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
        if(viewController == self){
            [self.navigationController setNavigationBarHidden:YES];
            NSLog(@"%d", [self.scrollMenuBar isScrollEnabled]);
        }
    }

isScrollEnable をチェックすると true が返されます。

通常のモーダル ビューをプッシュしようとしましたが、同じ問題が発生します。

4

3 に答える 3

1

viewDidLayoutSubview 関数でスクロール ビューのコンテンツ サイズを変更すると、再び機能します。

- (void) viewDidLayoutSubviews {
    [self resizeScrollViewContent];
}
于 2013-09-24T17:10:34.280 に答える
0

プログラムで UIScrollview とその中のボタンを作成することで問題を解決しました。ストーリーボードのどこが間違っていたのかわかりませんが、それは苦痛です。

于 2013-05-15T12:21:18.370 に答える