如何识别单个视图控制器中的最后一个视图?

Posted

技术标签:

【中文标题】如何识别单个视图控制器中的最后一个视图?【英文标题】:How to identify the last view in a single view controller? 【发布时间】:2017-09-28 06:23:01 【问题描述】:

根据objective c 的需要,我在具有相同height/widthhiding/showing 的单个视图控制器中使用3 个视图。 在这种情况下,我想获得我们显示的最后一个视图,因为我必须在为视图设置动画时管理该条件。

if (selectedBtnIndex == 1) 
 
  [_viewForTripDetail setHidden:NO]; 
  [_viewForReceipt setHidden:YES];  
  [_viewForGetHelp setHidden:YES];  
  CATransition transition = [[CATransition alloc] init]; 
  transition.duration = 0.2; 
  transition.type = kCATransitionPush; 
  transition.subtype = kCATransitionFromLeft;   
  [_viewForTripDetail.layer addAnimation:transition forKey:kCATransition];  
  _const_leadingViewBelowBtn.constant = _btnTripDetail.frame.origin.x+10; 
   flagTripDetailOpen = (int)1; 

请帮我找到屏幕上显示的最后一个视图。

谢谢。

【问题讨论】:

显示你尝试过的代码 感谢您的回复。实际上我是通过单击按钮来管理它的,这意味着有三个按钮,当单击每个按钮时,将显示单独的视图并隐藏其余的视图。下面是我的代码 - if (selectedBtnIndex == 1) [_viewForTripDetail setHidden:NO]; [_viewForReceipt setHidden:YES]; [_viewForGetHelp setHidden:YES]; CATransition transition = [[CATransition alloc] init];过渡时间= 0.2;过渡.type = kCATransitionPush; transition.subtype = kCATransitionFromLeft; [_viewForTripDetail.layer addAnimation:transition forKey:kCATransition]; _const_leadingViewBelowBtn.constant = _btnTripDetail.frame.origin.x+10; flagTripDetailOpen = (int)1; 【参考方案1】:

你可以点赞,

if (yourView.isHidden) 

    NSLog(@"view is hidden");

else

    NSLog(@"view is not hidden");

或者

您也可以拿一个标志并在显示或隐藏视图时保持该标志!

【讨论】:

感谢您的回复和宝贵的时间,是的,我已经通过维护标志和选定的按钮索引来管理它,现在它可以工作了。 :)

以上是关于如何识别单个视图控制器中的最后一个视图?的主要内容,如果未能解决你的问题,请参考以下文章

识别视图中的滑动手势而不是子视图

如何识别导航堆栈中的前一个视图控制器

如何将 xib 加载到一个视图控制器中的两个容器视图中

如何识别从UITabBarController中的更多选项卡或单独选项卡单击视图控制器?

如何在 Swift 中识别我们来自哪个视图控制器

如何通过控制器将两个不同模型的值作为 Laravel 8 中的单个返回变量传递给视图文件