UISegmentedControl切换视图?

时间:2010-02-14 06:55:04

标签: iphone uitableview views switch-statement uisegmentedcontrol

我的应用程序中有一个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];
  }
}

有人知道如何切换视图吗?任何帮助表示赞赏。感谢

2 个答案:

答案 0 :(得分:1)

只要两个视图都是可见父视图(或窗口)的子视图,该代码就会起作用。

此外,您可以简化您的IBAction:

- (IBAction)segmentSwitch:(UISegmentedControl*)segmentedControl {
    //UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;

答案 1 :(得分:0)

当执行此代码以及起点是什么时,知道发生会发生什么事情会有所帮助 - firstView已经可见,并且在代码运行时是否有任何影响?

如果firstView可见但代码永远不会隐藏它,我怀疑“firstView”变量实际上并未连接到视图。你告诉firstView隐藏,所以如果视图永远不会隐藏,“firstView”可能是零。在此方法中设置断点并检查firstView和secondView,以确保它们引用了您想要操作的视图。