我正在编写一个供开发人员用于iPhone的库(类似于实现OpenFeint的方式),我正在尝试使用关联的XIB创建一个ViewController,以便我可以在我的代码中实例化
SplashScreenViewController *splashScreenViewController = [[SplashScreenViewController alloc] init];
UIWindow *topApplicationWindow = [self getTopWindow];
[topApplicationWindow addSubview:splashScreenViewController.view];
然而,虽然这适用于简单的控件(UIButtons等),但我的SplashScreenViewController没有显示任何内容。 SplashScreenViewController非常简单:
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface SplashScreenView : UIViewController {
}
@end
并且实现为空。在我的View XIB(SplashScreenView.xib)中,我尝试将文件所有者的类设置为不起作用的SplashScreenViewController,然后我按照我在OpenFeint中看到的方式尝试它,即在IB中添加视图控制器使主要的UIView成为它的一个孩子,并使其成为SplashScreenViewController类。这也行不通(不显示)。
我想知道是否有人对我可能缺少的内容有一个好主意,或者是否有人可以按照我尝试的方式推荐创建新ViewControllers的演练。
谢谢!
答案 0 :(得分:1)
尝试两件事:
调用 initWithNibName 而不仅仅是init。也许您正在谈论的OpenFeint覆盖了init来调用initWithNibName,这就是为什么你没有看到它。
将SplashScreenViewController设置为文件所有者,并将其视图插座连接到您的 查看IB。
希望它有所帮助。
答案 1 :(得分:0)
而不是[splashScreenViewController alloc]
,请尝试[SplashScreenViewController alloc]
。我很惊讶你没有得到编译器警告。