0

私はタブバーアプリケーションを持っており、2番目のタブはナビゲーションコントローラスタイルのビューになります。現行のビューにコンテナコントローラとしてUINavigationControllerがある場合は、UIIabageがUITabBarを非表示にしません。

ナビゲーションバーの右のボタンImagePickerをモーダルに表示するカメラアイコンがあります。ただし、全画面表示にはなりませんが、代わりにタブバーの下に表示されます。

最初の画像は、この最初のrootViewにカメラボタンがあるナビゲーションコントローラコンテナがあることを示しています。クリックすると、UIImagePickerControllerが作成され、モーダルに表示されます。特にない。

second http://www.jobline.com.sg/images/no_use/2.png

どのように私はUITabBarを隠し、カメラ制御を見ることができない:カメラの結果を取るように制御が不足していますが

first http://www.jobline.com.sg/images/no_use/1.png

/このように絵をキャンセル? Skypeのプロフィールタブにもカメラがあり、「写真を撮る」とフルスクリーンのカメラビューを表示するためのUIActionSheetを表示することができます。私は、プロファイルタブにもルートビューとしてナビゲーションコントローラがあると思う。

あなたのお手伝いはありがとうございます。ここで

は、私が使用するコードです:

- (void)takePicture:(id)sender { 
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    } else { 
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    } 

    [self presentModalViewController:imagePicker animated:YES]; 
} 

それはモーダルimagePickerを提示するのは非常に簡単コードです。だから私はカメラのコントロールがないと私のタブバーはそれをオーバーラップすることができますなぜですか?それは私のビュー階層のためですか?

+0

どのようにプレゼンテーションしていますか?コードを追加できますか? –

+0

こんにちはDeepak、コードが追加されました: – mech

+0

'self'とは何ですか? –

答えて

2

私は解決策がありますが、ややハッキーです。私の考えは、タブバーを隠すメソッドを呼び出すNSNotificationCenterに通知をポストすることです。例:アプリケーションデリゲートインサイド

(またはあなたのタブバーを制御どんな...)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideTabbar) name:@"hideTab" object:nil]; 
    // Override point for customization after application launch. 
    // Add the tab bar controller's current view as a subview of the window 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

-(void)hideTabbar{ 
    [[_tabBarController tabBar] setHidden:YES]; 
} 

そして、カメラビューがそう

のように、単に通知を掲示表示されたら、タブバーを非表示にします
[[NSNotificationCenter defaultCenter] postNotificationName:@"hideTab" object:nil]; 

カメラの視界がなくなると、それを隠すことができます。

これが役に立ちます。

+0

こんにちは、この情報ありがとうございます。はい、あなたは私がタブバーをうまく隠すのを助けてくれましたが、カメラコントロールはどこにも見えません:( 実際にカメラコントロールも表示する必要があります。 – mech

+0

あなたが言ったように確かにハッキーですが、私はちょうど[self.navigationViewController.tabBarController.tabBar setHidden:YES]と表示してカメラを表示し、setHidden:NOを呼び出すとカメラを終了しました。 –

関連する問題