我正在尝试制作一些自定义视图,我想知道如何实现这样的东西,你有一个UISegmentControl(或类似的东西),你在不同的视图控制器之间切换,但段控制仍然在相同的地方(不要介意图片的大小不同)。像导航控制器,但有一个段而不是它。任何想法将不胜感激。感谢
答案 0 :(得分:2)
这可以很容易地完成。您只需使用导航控制器,但隐藏所有视图的导航栏。然后你可以使用
[self.navigationController pushViewController:@"Your viewController to which you want to navigate" animated:YES];
选择段索引。并且从任何一个视图控制器返回,你只需要实现这个
[self.navigationController popViewControllerAnimated:YES];
选择的段索引的按钮操作。我希望这会对你有所帮助。快乐的编码.. !!!
答案 1 :(得分:0)
您可以创建带有段控件和数组的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];
}
答案 2 :(得分:0)