如何在选择不同的段时使用UISegmentedControl加载不同的子视图?我是Objective-c和iOS编程的新手。
或者有没有办法让UITabBarController看起来像UISegmentedControl?
答案 0 :(得分:3)
采用程序化方法
在loadView中:
{
NSArray *segments = [NSArray arrayWithObjects:@"Left", @"Right", nil];
segmentedControl = [[UISegmentedControl alloc]initWithItems:segments];
[segmentedControl addTarget:self
action:@selector(changeSubViews)
forControlEvents:UIControlEventValueChanged];
contentView = [UIView alloc]initwithFrame:(the frame where you want the subViews to be displayed)];
[self.view addSubView:contentView];
}
- (void)changeSubViews
{
switch(segmentedControl.selectedSegmentIndex)
{
case 0:
{
[rightView removeFromSuperView];
if (leftView ==nil){leftView alloc, init;}
[contentView addSubView:leftView];
break;
}
case 1:
{
[leftView removeFromSuperView];
if (rightView ==nil){rightView alloc, init;}
[contentView addSubView:rightView];
break;
}
}
}
答案 1 :(得分:1)
您可以将UIToolbar
添加到根控制器的view
。在其中,您将拥有一个UISegementedControl
,其中包含根控制器处理的操作。根据点击的细分,您将加载不同的视图并在UIToolbar
下显示视图(以及您希望视图位于其下的任何其他内容)。
希望这有帮助!
答案 2 :(得分:0)
为此,您可以在视图中创建两个视图,并在.h文件中为两个视图创建属性 和 将IBAction附加到分段控件并像这样编写代码
if(self.yourSegmentedControl.selectedSegmentIndex==0)
{
view1.hidden=YES;
view2.hidden=NO;
}
else if(self.categorySegmentedControl.selectedSegmentIndex==1)
{
view2.hidden=YES;
view2.hidden=NO:
}
希望这会对你有所帮助。
答案 3 :(得分:0)
你应该在这篇文章中考虑crafterm的回答:UISegmentedControl Best Practice
这将允许您维护正常的ViewController行为(支持旋转,内存警告等),同时允许在其上面进行分段控制。