在presentModalViewController中使用UINavigationController

手上的项目中登陆界面是写在presentModalViewController中的,但是无法使用UINavigationController,后来费了一些时间来弄,可能因为当时思维比较混乱,没有搞定。

今天查到了一篇文章,http://www.giser.net/?p=857 惯例 原文录入,避免个人博客died

在iOS开发中遇到下面的问题,在presentModalViewController出来ViewController的TableView中无法使用navigationController的pushViewController方法弹出新的页面。

后来发现原因ViewController的navigationController的属性为nil。

解决办法为,在presentModalViewController的时候自己创建一个navigationController,这样ViewController的navigationController属性不为nil,即可使用pushViewController。

代码如下:

POIListViewController * poiListVC = [[POIListViewController alloc] initWithNibName:@"POIListViewController" bundle:nil];
			poiListVC.poisArray = self.searchResult;
			poiListVC.delegate = self;
			UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:poiListVC];
			[self presentModalViewController:navController animated:YES];
			[navController release]; 

			[poiListVC release];

最后贴上自己的代码

-(IBAction)logout:(id)sender{
    [ActiveUser sharedActiveUser].logined=NO;
    self.logoutButton.enabled=[ActiveUser sharedActiveUser].logined;
    
    UILoginViewController* loginViewController=[[UILoginViewController alloc] initFromNib];
    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:loginViewController];
    navController.navigationBarHidden=YES;

    [[Global sharedGlobal].mainViewController presentModalViewController:navController 
                                                                animated:NO];
    [loginViewController release];
    [navController release]; 
    
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值