0

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

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

4

2 回答 2

1

只要两个视图当前都是可见父视图(或窗口)的子视图,该代码就可以工作。

此外,您可以像这样简化您的 IBAction:

- (IBAction)segmentSwitch:(UISegmentedControl*)segmentedControl {
    //UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;
于 2010-02-14T07:01:10.607 回答
0

这将有助于了解执行此代码时发生什么以及起点是什么 - firstView 已经可见,并且在代码运行时是否有任何影响?

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

于 2010-02-15T01:19:03.593 回答