【问题标题】: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];
  }
}

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

【问题讨论】:

    标签: iphone uitableview views switch-statement uisegmentedcontrol


    【解决方案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 以确保它们具有对您要操作的视图的引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-20
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 2013-04-10
      • 2012-04-26
      相关资源
      最近更新 更多