私は、アプリケーションの起動時に表示されるメインビューコントローラを持っています。キャプチャー。私はUIimagepickerコントローラを備えたモデルビューコントローラを提示し、画像をアップロードした後、モデルを却下し、メインビューコントローラの(UIimagepicker)メソッドを呼び出す必要があります。 .hファイルモデルビューを閉じるときに、提示されたモーダルビューコントローラからrootviewcontrollerのメソッドを呼び出す方法
ViewController *viewController;
@property (retain) ViewController *viewController;
.mファイルのViewController .Mで
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 0)
{
[self dismissModalViewControllerAnimated:YES];
[viewController btnTap];
NSLog(@"uploaded");
}
else{
[self dismissModalViewControllerAnimated:YES];
}
}
-(void)btnTap{
[self.actForImage showFromTabBar:tabBarController.tabBar];
// act for image is the action sheet
// this method will be called when click on the center button of tabbar
}
私はブレークポイントを保持し、 - (void)btnTapメソッドが呼び出されていないことを確認しました。 メインビューコントローラのメソッドを呼び出す方法は他にありません。
私は解決策を試しましたが、それは私のためには機能しません。私は提示されたmodelVCのナビゲーションも使用しています。私は[self dismissModalViewControllerAnimated:YES]をしているという最後の画面でそのビューを却下したい。しかし、私はあなたの答えによると、モデルのVCからデリゲートを呼び出すことができると思います – krishna
まあ、ModalVCを呼び出すVCは、デリゲートを整理する単一のクラスを呼び出すことができ、その単一のクラスは、その上に。あなたが移動するたびにModalVC内のコントローラクラスにメッセージを送信し、完了したら直接コントローラを送信して、ModalVCを呼び出したViewControllerに代理人を処理させます。私が何を意味するのか分かっているなら.. –
これは、ModalVCを呼び出したVCクラスがあることを意味します。 ModalVC内にナビゲーションを配置するControllerクラスがあります。 Controllerクラスから作成された複数のビューがあり、完了したらコントローラにメッセージを送信して、次に必要な次のビューを作成します。あなたがあなたのModalVCの最後の画面にいるとき(または、あなたがあなたのmodalVCを却下したいとき)、コントローラクラスにメッセージを送り、上記の方法でModalVCを却下するように指示します。 –