こんにちは皆さん、私は目的の c を初めて使用し、別のUIViewController
クラスからオブジェクトのプロパティを初期化するための c++ または Java のような方法を探していました。
-init 関数を使用しましたが、問題は、いくつかのデバッグを行った後、開始時にプロパティ (an NSString
) が正常に初期化されていても、init で行ったすべてを削除 (初期化) することがわかったことです。だから私は私の!動画リンクを再生したいのですが、メソッドに渡される文字列が null であることがわかりました。また、ビデオ内のストリームを初期化するとすぐに再生されることにも注意してください。-init
viewDidLoad
property
playTheVideo
viewDidLoad
これが私のコードです:
ButtonsController.m
#import "ButtonsController.h"
#import "PlayVideoController.h"
@interface ButtonsController ()
@end
@implementation ButtonsController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
**UPDATE:[self createButton];**
}
-(void)createButton {
PlayVideoController *newObject = [[PlayVideoController alloc] initWithString:@"--somestring--" ];
[newObject playTheVideo];
}
PlayVideoController.m
#import "PlayVideoController.h"
@interface PlayVideoController ()
@end
@implementation PlayVideoController
@synthesize stream;
@synthesize player;
- (void)viewDidLoad
{
[super viewDidLoad];
[self playTheVideo];
}
- (id) initWithString: (NSString*) theStream {
self = [super init];
if (self) {
stream = theStream;
}
return self;
}
- (void) playTheVideo {
NSURL *url = [NSURL URLWithString:stream];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[player loadRequest:request];
}
PlayVideoController.h
#import <UIKit/UIKit.h>
@interface PlayVideoController : UIViewController
@property NSString *stream;
@property (weak, nonatomic) IBOutlet UIWebView *player;
- (void) playTheVideo;
- (id) initWithString: (NSString*) theStream;
@end
すぐに開始するためだけにメインクラスにオブジェクトを作成します
編集: main.m のアクションを削除し、デフォルトのままにしました