除了几个屏幕之外,在整个应用程序中保持 UIView 的最佳方法是啥?
Posted
技术标签:
【中文标题】除了几个屏幕之外,在整个应用程序中保持 UIView 的最佳方法是啥?【英文标题】:Best approach for keep UIView on across the app except few screen?除了几个屏幕之外,在整个应用程序中保持 UIView 的最佳方法是什么? 【发布时间】:2016-01-31 16:34:48 【问题描述】:我知道这个问题可能是投反对票的理由,但我仍然会真正知道我可以使用的概念。我有一个 UIView,我在 UIWindow 上添加了它。我需要在几乎很少的屏幕上而不是其他屏幕上的视图,所以这是处理这种情况的最佳方式。
考虑一下通知和委托,请提出建议。
【问题讨论】:
你能澄清你的问题吗?您将 UIView 添加到 UIWindow - 您是否覆盖 UIWindows? - 除非你的意思是你添加了一个 UIView 到一个 UIViewController。您还说“我需要在几乎几个屏幕上的视图”,所以您的意思是您需要在几个屏幕上而不是另一个屏幕上?除非我误解了您的问题,否则您应该将其添加到每个屏幕,对吗?您的最后一句话也让我感到困惑 - “通知和代表”? 我已将视图添加到窗口,我想在少数控制器的视图上显示该视图,而我想隐藏它。你清楚吗?最后一句即将处理案件,哪里可以知道我应该在哪里隐藏它。你明白我的意思。 我在应用委托类中的窗口上添加了 UIview,并具有访问它的全局属性。 【参考方案1】:在 ios 中,有一个名为 sharedApplication 的单例对象。您可以使用它从代码中的任何位置获取您的应用委托:
MyAppDelegate* del = (MyAppDelegate*) [UIApplication sharedApplication].delegate;
如果您向应用程序委托添加一个方法,例如“showSharedView:(BOOL)b
”,那么您所要做的就是从每个控制器的 viewWillLoad 方法中调用它。 (假设视图是 App 委托的一个标记 - 你说你已经完成了)。
例如:
MyAppDelegate* del = (MyAppDelegate*) [UIApplication sharedApplication].delegate; [del showSharedView:NO];
【讨论】:
以上是关于除了几个屏幕之外,在整个应用程序中保持 UIView 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
将 TapGestureRecognizer 添加到除 UICollectionView 单元格之外的整个视图
XCUITest - 单击后退按钮后,除了睡眠之外,我还能使用啥来在屏幕上查找项目?
在下面的类中实现带有屏幕限制的 Imageview Rotation