0

これはiPhoneプログラミングにとっての熱い質問ですが、私はまだ良い答えが見つかりません。UIImagePickerControllerの後にUIViewControllerを表示

にカスタムボタンがオーバーレイされたUITabBarControllerベースのアプリケーションがあります。このカスタムボタンは、新しいアイテムを転記するために使用されます。 thisのように(私はInstagramを取るなど)。

もちろん、このボタンはアプリケーション全体でアクセスできる必要があります。 このボタンをクリックすると、ライブラリまたはカメラから画像を選択するためのUIImagePickerControllerが表示されます。

画像を選択した後で別のUIViewControllerを表示する方法が問題です。

第1の方法はUIImagePickerControllerデリゲートメソッドからboolean型変数を設定し、viewDidAppearメソッドをオーバーライドブールVARをチェックするためのすべての View Controllerを、それがTRUEだ場合、[self.tabBarController presentModalViewController:MyController animated:YES]を呼び出しています。しかし、私はこれがかなり醜いと思う。

他の(エレガントな)方法はありますか?

答えて

0

新しいUIImagePickerControllerDelegateオブジェクトを作成し、ユーザーアクションをトラップし、モーダルビューコントローラを表示するか、メッセージを処理するビューコントローラにメッセージを送信します。

0

たとえば、ViewController Aは、UIImagePickerControllerを開始するカメラボタンをクリックするクラスです。 ViewController AUIImagePickerControllerの代理人である必要があります。

次に、ViewController Aクラスでは、Useボタンをクリックすると呼び出される関数を定義します。

// This function is invoked when you click the button USE 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    // Go back to the view A 
    [self dismissModalViewControllerAnimated:NO]; 
    // Get Image 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    // Go to view B 
    [self.navigationController pushViewController:showMapViewController animated:NO]; 
+0

残念ながら、私が 'self.navigationController'からプッシュした場合、タブのみが画像ピッカー –

関連する問題