viewDidLoad中
v1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
v2= [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
//然后我将组件添加到这两个视图中。
对于v1,我添加了几个文本文件和按钮 对于v2,我添加了几个标签和一个图像
并在同一viewDidLoad方法中,我将一个段控制器添加到navigationcontroller;
segment = [[UISegmentedControl alloc] initWithFrame:CGRectMake(x,y, height,width)];
segment .segmentedControlStyle = UISegmentedControlStylePlain;
[segment insertSegmentWithTitle:@"first" atIndex:0 animated:NO];
[segment insertSegmentWithTitle:@"second" atIndex:1 animated:NO];
[segment setSelectedSegmentIndex:0];
segment .momentary = YES;
[segment addTarget:self action:@selector(segmentclicked:) forControlEvents:UIControlEventValueChanged];
segmentControllerView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 300.0, 50.0)];
segmentControllerView .autoresizingMask = 0;
[segmentControllerView addSubview:segment ];
self.navigationItem.titleView = segmentControllerView ;
现在在;
-(void)segmentclicked:(id)sender {
if ((((UISegmentedControl *)sender).selectedSegmentIndex) == 0 ) {
[v1 setHidden:YES];
[v2 setHidden:NO];
[self.view addSubview:self.v1];
[loginSignupSegment setSelectedSegmentIndex:0]; <<<<<<<<<
[segment addSubview:segment];
self.navigationItem.titleView = segmentControllerView;
} else {
//toggle the correct view to be visible
[v2 setHidden:YES];
[v1 setHidden:NO];
[self.view addSubview:self.v2];
[segment setSelectedSegmentIndex:1]; <<<<<<<<<<<<<<<<
[segmentControllerView addSubview:segment];
self.navigationItem.titleView = segmentControllerView;
}}
当我切换视图时,我没有看到突出显示的视图段(我已在代码中完成但未显示) - 请参阅代码中的<<<<<<<
。
我该如何解决这个问题?
答案 0 :(得分:1)
我不认为你的代码是最好的方法。但我不知道所有的项目。 为解决它删除
segment.momentary = YES;
并替换 - (void)segmentclicked:(id)sender with:
-(void)segmentclicked:(id)sender {
if ((((UISegmentedControl *)sender).selectedSegmentIndex) == 0 ) {
[v1 setHidden:YES];
[v2 setHidden:NO];
[self.view addSubview:v1];
[segment setSelectedSegmentIndex:0];
} else {
//toggle the correct view to be visible
[v2 setHidden:YES];
[v1 setHidden:NO];
[self.view addSubview:v2];
[segment setSelectedSegmentIndex:1];
}
}
希望这对你有所帮助。