NGMoviePlayer
。
问题是:我在UIKit友好的资源包中有.xib
。我打电话的时候:
[MyMoviePlayerViewController initWithNibName:@"MyMoviePlayerViewController"
bundle:[NSBundle bundleWithPath:
[[NSBundle mainBundle] bundlePath]
stringByAppendingPathComponent:@"MyMoviePlayerViewController.bundle"]];
..在我的自定义类上,然后访问view
(因此调用loadView
)它不会抛出任何错误,但也不会实际正确加载出口。我看到一个白色的屏幕,调试显示所有可视元素都是0x0
,但没有出现预期的错误。
编辑:我现在也尝试在我的目标应用中加载资源包之外的.xib,同样的事情发生(白屏)。
我正在寻找的特别是:
Could not load NIB <nibname>...
如果根本找不到,或...loaded the <nibname> NIB but the view outlet was not set
如果找到但未正确连接 xib在本地应用程序中(我知道静态库不能包含xib)。我尝试使用与NGMoviePlayerDemo
作者提供的NGMoviePlayer
项目相同的资源包,而 会抛出错误:
Could not load NIB in bundle:
'/Users/.../MyMoviePlayerViewController.bundle (not yet loaded)'
with name 'MyMoviePlayerViewController'
我已导航到它为捆绑显示的路径,并且该位置存在MyMoviePlayerViewController.xib
文件。
我还尝试使用bundle:nil
,以防Xcode因为某些原因将bundle目录的资源与主目录相结合。这两种情况都没有错误,并在我的实际项目中显示白屏。这两种情况都会在Could not load NIB
项目中引发NGMoviePlayerDemo
错误。
编辑:我在NGMoviePlayerDemo
应用中尝试了与资源包相同的.xib,但效果很好。
非常感谢所有输入。
答案 0 :(得分:0)
解决方案:注意Unknown class <classname> in Interface Builder file.
条消息。
我在静态库中获得了电影播放器的代码,并且电影播放器的父视图控制器作为外部标题包含在项目中,但子视图未包含在标题中,因此它们不是正确定位。因为我们在目标应用程序中引用它们的唯一位置是在.xib
文件中,所以没有与这些子类有关的编译错误,但是当加载.xib
时,这些类不能被发现,因此没有设置他们的属性。而恰好包含了播放器的所有控件,这可能会使初始化代码无声无息。
我将子类中的所有代码和ivars合并到父级电影播放器类中,现在它正常工作:)