【发布时间】:2011-03-07 09:39:33
【问题描述】:
我有一个以编程方式创建的导航控制器来处理 UISegmentedControl 的视图之间的切换。 (称为segmentsNavigationController)
导航控制器有一个底部工具栏,其中包含几个以编程方式添加的 UIBarButtonItem。为了处理开关,我有以下代码:
- (void)indexDidChangeForSegmentedControl:(UISegmentedControl *) aSegmentedControl {
NSUInteger index = aSegmentedControl.selectedSegmentIndex;
if( index == 0 ) {
OneViewController *oneViewController = nil;
if( (oneViewController = [self.viewControllers objectForKey:@"one"]) == nil ) {
oneViewController = [[OneViewController alloc] init];
[self.viewControllers setObject:oneViewController forKey:@"one"];
[oneViewController release];
}
NSArray *theViewControllers = [NSArray arrayWithObject:oneViewController];
[self.segmentsNavigationController setViewControllers:theViewControllers animated:YES];
}
else if( index == 1 ) {
TwoViewController *twoViewController = nil;
if( (twoViewController = [self.viewControllers objectForKey:@"two"]) == nil ) {
twoViewController = [[RelatedArticlesViewController alloc] init];
[self.viewControllers setObject:twoViewController forKey:@"two"];
twoViewController.hidesBottomBarWhenPushed = YES;
[twoViewController release];
}
NSArray *theViewControllers = [NSArray arrayWithObject:twoViewController];
[self.segmentsNavigationController setViewControllers:theViewControllers animated:YES];
}
}
所以最终当我从一个视图切换到另一个视图并返回时,导航控制器底部栏中的所有 UIBarButtons 都会丢失。这是为什么?我做错了吗?
【问题讨论】:
标签: iphone ios uinavigationcontroller uisegmentedcontrol