【发布时间】:2014-09-07 11:52:10
【问题描述】:
我有一个应该显示 Youtube 视频的应用,我正在使用 Youtube ios helper API。
我有一个 UITabBarController 的子类,用于呈现两个 youtube 视频,并且 UITabBarController 位于 NavController 内,并从 UITableViewController 推送到。所以设置看起来像
[NAVController] -- 关系 --> [UITableViewController] -- 推送 --> [UITabBarController] -- 关系 --> [CustomViewController]
现在我的 CustomViewController.h 看起来像:
#import <UIKit/UIKit.h>
#import "YTPlayerView.h"
@interface CustomViewController : UIViewController<YTPlayerViewDelegate>
@property (strong, nonatomic) YTPlayerView *youtubeView;
@property (strong, nonatomic) NSString *videoID;
@end
我的 .m 文件有
#import "CustomViewController.h"
#import "YTPlayerView.h"
@interface CustomViewController ()
@end
@implementation CustomViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.youtubeView.delegate = self;
self.view.backgroundColor = [UIColor blueColor];
self.youtubeView.frame = self.view.frame;
self.youtubeView.backgroundColor = [UIColor redColor];
[self.view addSubview:self.youtubeView];
NSLog(@"Subviews %lu", (unsigned long)[self.view.subviews count]);
NSLog(@"Subviews %@", self.views.subviews);
BOOL b = [self.youtubeView loadWithVideoId:self.videoID];
NSLog(@"Loaded? %d", b);
[self.youtubeView playVideo];
}
我最终得到的是顶部的导航栏(应该是),底部是标签栏(应该是),但是蓝色背景而不是红色背景(不用说,没有加载 Youtube 视频)。当我运行它时,它会打印出来
子视图 0 子视图 ( ) 加载? 0
显然 addSubView: 调用不起作用。
我见过this post,但没有帮助。
(对于那些不熟悉 youtube ios 助手库的人:
youtube-ios-player-helper 是一个开源库,可帮助您将 YouTube iframe 播放器嵌入到 iOS 应用程序中。该库创建 UIWebView 并在应用程序的 Objective-C 代码和 YouTube 播放器的 JavaScript 代码之间架起一座桥梁,从而允许 iOS 应用程序控制 YouTube 播放器。
(使用 iOS 7 和 Xcode 5.1)
【问题讨论】:
-
你在哪里初始化:
self.youtubeView?又名:self.youtubeView =[YTPlayerView alloc]init]; -
很奇怪。这对我以前不起作用,但现在似乎......谢谢!作为后续,在 YT 文档中,它没有显示初始化。 IBOutlet 会自动分配和初始化吗?
-
是的,IBOutlet 是自动的
标签: ios objective-c youtube-api