我有一个应该显示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)
答案 0 :(得分:3)
由于我没有看到您使用的是IBOutlet,我相信您需要初始化self.youtubeView
:
self.youtubeView = [[YTPlayerView alloc]init];
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];
答案 1 :(得分:0)
YouTube api不是问题,UINavigation控制器和UITabBarController只是不能很好地协同工作。你应该做的是使一个视图控制器来处理tabbar而不是UITabBarController。 This显示了如何完成任务的一些见解。