0

私のアプリでは、親ビューから子ビューにデータを渡そうとしています。ただし、アプリを実行すると、デリゲート メソッドが呼び出されません。カスタムデリゲートの実装方法に関するコードは次のとおりです。parent.h

    @protocol SLBWallViewControllerDelegate <NSObject>

- (void) pictureToBeUploaded:(id)picture;

@end

@interface SLBWallViewController : UIViewController <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate>
- (IBAction)createPotButtonPressed:(id)sender;

@property (weak, nonatomic) id <SLBWallViewControllerDelegate> delegate;
@end

親.m

[self.delegate pictureToBeUploaded:info[UIImagePickerControllerEditedImage]];//i'm taking the pic from a uiimagepicker

child.h

@interface SLBPostViewController : UIViewController <SLBWallViewControllerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *picture;
@end

child.m

#pragma mark - Wall View Controller Delegate
- (void)pictureToBeUploaded:(id)picture{
    self.picture.image = picture;
}

何か間違っているか、不足していますか?

4

2 に答える 2

1

まあ、問題はおそらく(編集:コメントで確認された)その時点ですself.delegatenilしたがって、メッセージを送信してnilももちろん何も起こりません。メッセージを送信する前に、必ずChildインスタンスをプロパティに割り当ててください。delegateたとえば、次のようなものです。

//...
self.delegate = //.. a 'Child' instance

//...
[self.delegate pictureToBeUploaded:info[UIImagePickerControllerEditedImage]];
于 2013-07-11T11:03:06.390 に答える
0

//(1) .h ファイルの Child で、1 つのプロパティを作成します

@property (nonatomic,strong) UIImage * someImage;

//(2) .m ファイルの子で、プロパティをオーバーライドします

-(void)setSomeImage:(UIImage *)someImage{

_someImage=someImage;
self.picture.image = self.someImage;

}

//(3) .m ファイルの親で、画像を子の 'someImage' プロパティに設定します

childsObject.someImage= UIImagePickerControllerEditedImage;

于 2013-07-11T10:28:12.893 に答える