如何解决UINavigationController不起作用pushViewController忽略该视图
| 关于UINavigationController
有很多问题。我修改了代码以遵循Apple的示例,但是pushViewController
方法不起作用:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:navController.view];
[window makeKeyAndVisible];
LoginController *login = (LoginController*)[self.navController.viewControllers objectAtIndex:0];
if([login already_validated] == TRUE) {
self.timeline = [[TimelineViewController alloc] initWithNibName:@\"Timeline\" bundle:[NSBundle mainBundle]];
[navController pushViewController:timeline animated:YES];
[self.timeline release];
}
return YES;
该视图在以下行中已正确加载:
self.timeline = [[TimelineViewController alloc] initWithNibName:@\"Timeline\" bundle:[NSBundle mainBundle]];
...但
[navController pushViewController:timeline animated:YES];
没有呈现视图。我已经检查过,“ 5”不为空。
有任何想法吗?
最好!
卢卡斯
固定!!
问题出在ѭ6上。
不要在窗口类上设置ѭ7!
如果您在XIB文件上设置属性,则该视图将位于其他所有视图之上。
解决方法
切勿直接向物业发送
release
!内存管理是通过setter方法完成的!
代替:
[self.someProperty release];
写:
self.someProperty = nil;
通常,您使用dealloc
方法执行此操作。
在您的情况下,只需删除[self.timeline release];
行或根本不使用任何属性。
编辑:
添加自动发布:
self.timeline = [[[TimelineViewController alloc] initWithNibName:@\"Timeline\" bundle:[NSBundle mainBundle]] autorelease];
, 试试这个。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:navController.view];
[window makeKeyAndVisible];
LoginController *login = (LoginController*)[navController.viewControllers objectAtIndex:0];//here remove self
if([login already_validated] == TRUE) {
self.timeline = [[TimelineViewController alloc] initWithNibName:@\"Timeline\" bundle:nil];//remove the nsbundle mainbundle
[navController pushViewController:self.timeline animated:YES];//here u have to use with self.timeline
[self.timeline release];
}
return YES;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。