首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

100分求解决UIWindow页面跳转有关问题!

2014-01-08 
100分求解决UIWindow页面跳转问题!!只有一个window根控制器,,没有其他的UIView,现在在window页面上添加一

100分求解决UIWindow页面跳转问题!!
只有一个window根控制器,,没有其他的UIView,现在在window页面上添加一个按钮,点击按钮想跳转到下一个页面(dataManage.xib)

我是如下实现的:
iFrameExtractorAppDelegate.h 文件:
@property (nonatomic,retain) UINavigationController *navigationController;



iFrameExtractorAppDelegate.m文件:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
    
    
//    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.window.rootViewController];
//    self.window.rootViewController = nav;                                   //-----------注释这一部分不能实现跳转
    UINavigationController *nav = [[UINavigationController alloc] init];
    [self.window.rootViewController addChildViewController:nav];   //-----------这样做同样不行
}


跳转到下一个页面代码:
//点击按钮触发的函数(数据菜单管理)
-(IBAction)dataManage{
    dataManage *dataManagePage = [[dataManage alloc] initWithNibName:@"dataManage" bundle:nil];
    [self.navigationController pushViewController:dataManagePage animated:YES];
    NSLog(@"fuck jump.....");
}


附注:
MainWinow.xib如下:
100分求解决UIWindow页面跳转有关问题!


我说的修改的NIB文件指的是dataManage这个文件,这个是可以修改的啊,并且按我给的代码是可以跳转的
[解决办法]
你对基础知识的理解没有弄清楚

如果使用导航控制器来导航你的视图,如下代码:
[vc1.navigationController pushViewController:vc2 animated:YES];

你需要注意的是,其中vc1必须是在导航控制器栈中,不是所有的控制器通过上述的代码都可以导航视图。
你贴出的代码中就出现了这种认识上的错误。
首先一个App应用理论上来说只有一个window.但可以有多个视图控制器。所以一般的我们不会把我们的内容直接放到window上,而是创建一个视图控制器,在这个视图上来添加你的视图元素。因此,uiwindow有一个rootviewcontroller的属性,就是让我们在这里指定我们的根控制器,因为也只有视图控制器有进行视图导航的能力。

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    
    UIViewController *vc1=[[UIViewController alloc] init];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc1];
    self.window.rootViewController = nav;                                  
}


我们通过uinavigationcontroller 封装了vc1,生成了一个新的导航控制器,且它为导航控制器的根控制器,这时在vc1中触发导航到vc2的代码的话,就不会再有问题了

热点排行