在AppDelegate中,我想创建一个UIViewController子类,并添加它的观点。 本身将在代码中指定的VIW - 没有笔尖。
根据苹果的文档,我应该使用
initWithNibName:nil bundle:nil];
然后在控制器的loadView,添加我的子视图等。
然而,follwing测试代码下面没有为我工作。 我仿照苹果公司的AppDelegate代码的PageControl演示 ,只是因为我的应用程序将实施类似的结构(特别是基本控制器来管理一个分页滚动视图,以及其他控制器的阵列来构建页)。
但我怀疑我的AppDelegate代码是问题,因为记录证明initWithNibName ::和双方的loadView火。 如下面的应用程序运行,但屏幕是空白。 我期待有标签的绿色视图。
AppDelegate中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
ScrollerController *controller = [[ScrollerController alloc] initWithNibName:nil bundle:nil];
[self.window addSubview:controller.view];
[self.window makeKeyAndVisible];
return YES;
}
ScrollerController(在UIViewController子类)
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)loadView{
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
UIView *contentView = [[UIView alloc] initWithFrame:applicationFrame];
contentView.backgroundColor = [UIColor greenColor];
self.view = contentView;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 100, 40)];
[label setText:@"Label created in ScrollerController.loadView"];
[self.view addSubview:label];
}