在AppDelegate中,我想要创建一个UIViewController子类并添加它的视图。视图本身将在代码中指定-没有nib。
根据Apple文档,我应该使用:
在控制器的loadView中,我添加了子视图等内容。
然而,以下测试代码对我无效。 我的AppDelegate代码是基于苹果公司的PageControl演示模型的{{link1:PageControl demo}},因为我的应用程序将实现类似的结构(特别是一个基本控制器来管理分页滚动视图和其他控制器的数组来构建页面)。
但我怀疑我的AppDelegate代码有问题,因为日志证明initWithNibName ::和loadView都会触发。 以下应用程序运行,但屏幕是空白的。 我期望看到一个带标签的绿色视图。 AppDelegate
根据Apple文档,我应该使用:
initWithNibName:nil bundle:nil];
在控制器的loadView中,我添加了子视图等内容。
然而,以下测试代码对我无效。 我的AppDelegate代码是基于苹果公司的PageControl演示模型的{{link1:PageControl demo}},因为我的应用程序将实现类似的结构(特别是一个基本控制器来管理分页滚动视图和其他控制器的数组来构建页面)。
但我怀疑我的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];
}