2

初心者の質問フェラですが、わかりません。

別のView ControllerにロードするView Controllerがあります。ボタンを押して、親ビューコントローラー内のメソッドを呼び出すことができるようにしたいと考えています。だからここに私が持っているものがあります

親 VC:

   .h
    -(void)callParentMethod;



    .m

    -(void)viewDidLoad{
    self.childVC.parentVC = self;
    }

-(void)callParentMethod{
NSLog(@"Hello?");
}

子 VC:

.h

#import "TheParentViewController.h"

@property (nonatomic, weak) TheParentViewController *parentVC;


.m

-(void)addThis{
[self.parentVC callParentMethod];
}

エラーは発生しません。子 VC メソッドaddThisはメソッドを呼び出しているようですが、NSLog は呼び出されません。私が間違っていることは何ですか?

4

5 に答える 5

2

参考parentVCのためにリリースすると思います。weakこの方法を試してみてください。

-(void)addThis{
NSLog(@"%@", self.parentVC);
[self.parentVC callParentMethod];
}
于 2013-09-16T17:06:10.017 に答える
0

親View Controllerが割り当てられているかどうかを確認してください。

   parentnvc = [ParentViewController alloc]initWithNibName:@"somenib" bundle:nil];

parentvc が割り当てられて初期化され、メソッドを呼び出す場合

于 2013-09-16T17:47:25.327 に答える
0
YourParentVC *parent = (YourParentVC*)[self presentingViewController];

parent.whatever = blah;
于 2013-09-16T17:04:53.480 に答える
0

アプリケーションが何であるかはよくわかりませんが、親ビュー コントローラーへの参照を保持する必要はありません。parentViewControllerUIViewControllerには、次の方法で使用できるというプロパティが既にあります。

[self.parentViewController methodToCall];

これにより、親ビュー コントローラーのメソッドが呼び出されます。カスタム メソッドを呼び出すには、オブジェクトをキャストする必要がある場合があります

[(TheParentController *)self.parentViewController methodToCall];

もちろん、これは、子View Controllerのビューが親View Controllerビューのサブビューであることを前提としています。お役に立てれば

于 2013-09-16T17:25:19.827 に答える