根据苹果文档,我应该使用
initWithNibname:nil bundle:nil];
然后在控制器的loadVIEw中,我添加我的子视图等.
但是,下面的后续测试代码对我不起作用.我在Apple的PageControl demo上模拟了AppDelegate代码,因为我的应用程序将实现类似的结构(特别是用于管理分页滚动视图的基本控制器,以及用于构建页面的其他控制器阵列).
但我怀疑我的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];}解决方法 尝试使用:
self.window.rootVIEwController = controller;
代替
[self.window addSubvIEw:controller.vIEw];
注意,你还应该@synthesize窗口;并创造它 self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
总结以上是内存溢出为你收集整理的ios – 创建没有笔尖的视图控制器全部内容,希望文章能够帮你解决ios – 创建没有笔尖的视图控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)