1

別の VC をモーダルに提示する VC があります。この 2 番目の VC は 3 番目の VC にプッシュします。3 番目の VC はそれ自体を終了し、最初の VC でメソッドを呼び出す必要があります。私はこれを機能させることができないようです。何かアドバイス?

 VC3 *aVC3 = [[self.navigationController.viewControllers objectAtIndex:0] parentViewController];
 aVC3 = self.name;
 [aVC3 addExercise];
 [self dismissView];
4

2 に答える 2

1

に使用delegatebackward messsagingます。

simple-delegate-tutorial-for-ios-development を参照してください。プロトコルとデリゲートの基本も参照してください

次のように、navigationController 内の任意の viewController と通信する必要がUINavigationControllerある場合:no need of delegate

ViewController *objViewController = (ViewController *)[self.navigationController.viewControllers objectAtIndex:0]; //need to which controller u would like to communicate
[objViewController yourMethodHere]; // your method here
于 2012-10-30T05:15:32.573 に答える
-1

別の方法は次のとおりです。

ステップ1:でFirstViewControllerプロパティを作成しますSecondViewController.h

@interface SecondaryViewController : UIViewController{
}
@property (nonatomic, strong) FirstViewController *viewControllerOne;

ステップ2:をself提示するときに、そのプロパティをに設定SecondViewControllerしますFirstViewController.m

@implementation SecondaryViewController

-(void)functionThatPresentsSecondViewController{
    SecondViewController *viewControllerTwo = [[SecondViewController alloc] init];
    [viewControllerTwo setViewControllerOne: self];
    [self presentViewController:viewControllerTwo animated:NO completion:nil];
}

ステップ3:これで、プロパティを使用してFirstViewControllerから関数を呼び出すことができます。SecondViewControllerviewControllerTwo.viewControllerOne

于 2012-10-30T05:45:45.383 に答える