我正在尝试制作一些自定义视图,我想知道如何在你有 UISegmentControl (或类似的东西)并且你在不同的视图控制器之间切换但段控制保持在同一个位置的情况下实现这样的东西(不介意图片大小不同)。就像一个导航控制器,但有一个段而不是它。任何想法将不胜感激。谢谢
我正在尝试制作一些自定义视图,我想知道如何在你有 UISegmentControl (或类似的东西)并且你在不同的视图控制器之间切换但段控制保持在同一个位置的情况下实现这样的东西(不介意图片大小不同)。就像一个导航控制器,但有一个段而不是它。任何想法将不胜感激。谢谢
这很容易做到。您只需要使用导航控制器,但在所有视图上隐藏导航栏。然后你可以使用
[self.navigationController pushViewController:@"Your viewController to which you want to navigate" animated:YES];
在选择段索引上。并且要从任何这些视图控制器返回,您只需要实现这个
[self.navigationController popViewControllerAnimated:YES];
在选定段索引的按钮操作上。我希望这会对你有所帮助。快乐编码..!!!
您可以使用段控制和数组创建 ViewController,其中将包含其他控制器。在段更改时,您应该从数组中的一个控制器查看视图,并将其像子视图一样添加到父 ViewControllerView。这看起来像这样
//in ViewControllerView.m
-(void)touchUpInsideSegmentIndex:(NSUInteger)segmentIndex {
//delegate is your ViewController
UIView * newToolView = [delegate viewAtIndex:segmentIndex];
//contentView declared in ViewControllerView.h
if (newToolView != contentView && newToolView) {
[contentView removeFromSuperview];
[contentView release];
contentView = [newToolView retain];
[self addSubview:contentView];
[self setNeedsLayout];
}
}
//in ViewController.m
- (UIView*)viewAtIndex:(NSInteger)index {
//yourControllersArray is an array of your controllers
if (index < 0 || index >= [yourControllersArray count]) {
NSLog(@"View At Wrong Index %d (max=%d)", index, [yourControllersArray count]);
return nil;
}
return [[yourControllersArray objectAtIndex: index] view];
}