【发布时间】:2014-10-30 02:08:12
【问题描述】:
选择不同的段时,如何使用UisegringedControl来加载不同的子视图?我是 Objective-c 和 iOS 编程的新手。
或者有没有办法让 UITabBarController 看起来像 UISegmentedControl?
【问题讨论】:
标签: iphone objective-c ios uisegmentedcontrol
选择不同的段时,如何使用UisegringedControl来加载不同的子视图?我是 Objective-c 和 iOS 编程的新手。
或者有没有办法让 UITabBarController 看起来像 UISegmentedControl?
【问题讨论】:
标签: iphone objective-c ios uisegmentedcontrol
对于程序化方法
在加载视图中:
{
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;
}
}
}
【讨论】:
您可以将UIToolbar 添加到根控制器的view。在其中,您将拥有一个 UISegementedControl,其中包含根控制器处理的操作。根据单击的段,您将加载不同的视图并在 UIToolbar 下显示该视图(以及您希望该视图位于下方的任何其他内容)。
希望这会有所帮助!
【讨论】:
您应该在这篇文章中考虑工匠的回答:UISegmentedControl Best Practice
这将允许您保持正常的 ViewController 行为(支持旋转、内存警告等),同时允许在其上进行分段控制。
【讨论】:
为此,您可以在视图中创建两个视图并在 .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:
}
希望这会对您有所帮助。
【讨论】: