0

質問の状態のように、presentModalViewControllerまたはpushViewControllerを使用せずにUIDatePickerをスライドさせて、アプリケーションのメインUITabBarを非表示にしようとしています。現在、ナビゲーションバーのいくつかのボタンを備えたUIDatePickerサブビューを一時的なUIViewControllerに追加し、その一時的なコントローラーをルートとしてUINavigationControllerを初期化しています。UITabBarをオーバーレイするために、このナビゲーションコントローラーをサブビューとしてself.navigationController.tabBarControllerに追加していますが、UITabBarを非表示に設定すると、その下に表示されるのは白で、UIDatePickerは表示されません。助言がありますか?

注:これについての私の理由は、画面よりも小さいビューでpresentModalViewControllerを使用する方法がわからないためです。

4

2 に答える 2

5

ここに答えて、UiTabBarを隠す

更新:リンクからのコード

BOOL hiddenTabBar;
UITabBarController *tabBarController;

- (void) hideTabBar {

     [UIView beginAnimations:nil context:NULL];
     [UIView setAnimationDuration:0.4];
     for(UIView *view in tabBarController.view.subviews)
     {
          CGRect _rect = view.frame;
          if([view isKindOfClass:[UITabBar class]])
          {
               if (hiddenTabBar) {
                    _rect.origin.y = 431;
                    [view setFrame:_rect];
               } else {
                    _rect.origin.y = 480;
                    [view setFrame:_rect];
               }
          } else {
               if (hiddenTabBar) {
                    _rect.size.height = 431;
                    [view setFrame:_rect];
               } else {
                    _rect.size.height = 480;
                    [view setFrame:_rect];
               }
          }
     }    
     [UIView commitAnimations];

     hiddenTabBar = !hiddenTabBar;
}

更新: iPad(シミュレーターでテスト済み)とiPhone(テストされていませんが、うまくいけば動作します)の両方で動作するようにコードを変更しました https://stackoverflow.com/a/8584684/336422

于 2010-01-03T23:47:13.397 に答える
0

Apple の DateCell の例をご覧ください。becomeFirstResponder を呼び出すと、UITextField のキーボードのように UIDatePicker が下からスライドします。

于 2010-02-20T14:52:58.630 に答える