分段控制切换视图?
Posted
技术标签:
【中文标题】分段控制切换视图?【英文标题】:UISegmentControl switch views? 【发布时间】:2010-02-14 06:55:04 【问题描述】:我的应用中有一个 UISegmentControl,我试图让它像应用商店一样切换视图。我试过这段代码没有运气:
- (IBAction)segmentSwitch:(id)sender
UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;
if (selectedSegment == 0)
//toggle the correct view to be visible
[firstView setHidden:NO];
[secondView setHidden:YES];
else
//toggle the correct view to be visible
[firstView setHidden:YES];
[secondView setHidden:NO];
有人知道我如何切换视图吗?任何帮助表示赞赏。谢谢
【问题讨论】:
【参考方案1】:只要两个视图当前都是可见父视图(或窗口)的子视图,该代码就可以工作。
另外,您可以像这样简化您的 IBAction:
- (IBAction)segmentSwitch:(UISegmentedControl*)segmentedControl
//UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;
【讨论】:
这些不是子视图。有没有办法说 List1Controller 第一个出现, List2Controller 第二个出现? 除窗口外的所有视图都是子视图。我不明白这个新问题。即使视图有视图控制器,您的代码仍然可以工作。确保使用视图控制器的“视图”属性(并将它们作为子视图添加到当前可见的视图/窗口中)。【参考方案2】:了解这段代码执行时会发生什么会有所帮助,起点是什么——firstView 已经可见,代码运行时是否有任何影响? p>
如果 firstView 可见但代码从不隐藏它,我怀疑“firstView”变量实际上并未连接到视图。你告诉 firstView 隐藏,所以如果视图从不隐藏,“firstView”可能为零。在此方法中设置断点并检查 firstView 和 secondView 以确保它们具有对您要操作的视图的引用。
【讨论】:
以上是关于分段控制切换视图?的主要内容,如果未能解决你的问题,请参考以下文章