こんにちはすべて私はXcode 8を使用しています.2つのView Controller間でオブジェクトを渡すためにデリゲートを使用しようとしていますが、代理メソッドが呼び出されていません。 it.can誰もが私が間違ってhere.Thank you.Hereやっているものをお勧めしますと、私のコードカスタムデリゲートがIOSで呼び出されていない
VideoViewController.h
#import <UIKit/UIKit.h>
#import<AVFoundation/AVFoundation.h>
#import "VideoCollection.h"
//delegate methods
@class VideoViewController;
@protocol AddVideoDelegate <NSObject>
-(void)addVideoToCollectionView:(VideoViewController*)viewController didAddVideo:(VideoCollection*)object;
@end
@interface VideoViewController : UIViewController<UITextFieldDelegate,UIPickerViewDelegate,UIPickerViewDataSource>
- (instancetype)initWithVideoUrl:(NSURL *)url;
@property (strong, nonatomic) NSURL *videoUrl;
@property (strong, nonatomic) AVPlayer *avPlayer;
@property (strong, nonatomic) AVPlayerLayer *avPlayerLayer;
@property (strong, nonatomic) UIButton *cancelButton;
@property (strong, nonatomic) UITextField *captionField;
@property (nonatomic, retain) NSMutableArray *dataArray;
@property (strong, nonatomic) UIPickerView *pickerView;
@property (nonatomic, weak) id<AddVideoDelegate> delegate;
@end
VideoViewController.m
ですvideoCollectionViewController.h
#import <UIKit/UIKit.h>
#import "VideoViewController.h"
@interface videoCollectionViewController : UIViewController<AddVideoDelegate>
@property (weak, nonatomic) IBOutlet UIButton *btn;
@property (weak, nonatomic) IBOutlet UILabel *label;
@property (strong, nonatomic) VideoViewController* _vc;
- (IBAction)click:(id)sender;
- (IBAction)sfds:(id)sender;
@end
videoCollectionViewController.m
#import "videoCollectionViewController.h"
#import "WebSerivceInterface.h"
#import "VideoViewController.h"
@interface videoCollectionViewController()
@end
@implementation videoCollectionViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
__vc=[[VideoViewController alloc] init];
__vc.delegate=self;
}
-(void)addVideoToCollectionView:(VideoViewController *)viewController didAddVideo:(VideoCollection *)object{
NSLog(@"delegate called");
self.label.text=object.videoCaption;
}
@end
こんにちはRiya、VideoViewController.hクラスのデリゲートのプロパティを作成してから、2つのコントローラ間でデータを渡します。デリゲートプロパティが弱くなければならないことを確認してください。 –
@MandeepSingh私は部分的に問題のvideoViewController.hを追加しましたが、ファイルにあります –
あなたのVideoViewControllerは何ですか、それはuiviewのサブクラスですか? –