ios - 在基于页面的应用程序中的 webview 上录制时如何隐藏/取消隐藏 View
<p><p>我想隐藏/取消隐藏灰色 View (有按钮),它位于奶油色/比格色 webView 的顶部 - <strong>请参阅附图</strong></p>
<p> <img src="/image/BomQ2.png" alt="PageBased App"/> </p>
<p>我使用了 xcode 中提供的基于页面的应用程序模板。</p>
<p><strong>方法一:在 Controller 内部隐藏/取消隐藏</strong>
<br/>我试图在同一个 Controller 中隐藏/取消隐藏<br/>但问题是每次创建此 Controller 的新实例并且隐藏/取消隐藏的 bool 值都丢失了</p>
<p><strong>方法 2:协议(protocol)和委托(delegate)</strong>
<br/> 我也尝试使用委托(delegate)/协议(protocol)来维护其父 Controller 的状态,但它永远不会进入 ifblock-
<br/> if ([self.delegateReadingToolbar........block 永远不会被调用。</p>
<pre><code>-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = ;
if(touch)
{
CGPoint location = ];
if (CGRectContainsPoint(webViewTouch,location))
{
//do whatever
NSLog(@"webView Touched");
if (self.showReadingToolBar)
{
self.showReadingToolBar = NO; // approach 1
self.viewReadingToolBar.hidden = NO;
// approach 2
if ()
{ // this block is never called
;
}
}
else
{
self.showReadingToolBar = YES;
self.viewReadingToolBar.hidden = YES;
;
}
}
}
}
</code></pre>
<p><strong>对于方法 2 编码:</strong></p>
<p><strong>ChildController.h</strong></p>
<pre><code>@class ChildController;
@protocol ReadingToolbarShowDelegate <NSObject>
-(void)contentViewDidFinish:(contentView *)controller showStatus:(BOOL)show;
@end
@property (nonatomic,weak)id<ReadingToolbarShowDelegate>delegateReadingToolbar;
</code></pre>
<p><strong>ParentController.h</strong></p>
<pre><code>#import "ChildController.h"
@interface ParentController : UIViewController<UIPageViewControllerDataSource,UIPageViewControllerDelegate,ReadingToolbarShowDelegate>
</code></pre>
<p><strong>ParentController.m</strong></p>
<pre><code>-(void)ChildControllerDidFinish:(contentView *)controller showStatus:(BOOL)show
{
showReadingToolbar = show;
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如果你分配/初始化一个新的 Controller ,之前设置的值将会消失。您实际上是在创建一个新对象。我看到了几种不同的方法可以做到这一点。 </p>
<ol>
<li><p>将您的 Controller 放在导航 Controller 中,然后将其他 Controller 插入或移出堆栈。这样您就不必实例化新对象。 </p></li>
<li><p>您可以将所需的显示配置保存在 NSUserDefaults 键/值对中。每当您需要创建这种类型的新对象时,它都会在 NSUserDefault 中查找值。 </p></li>
</ol></p>
<p style="font-size: 20px;">关于ios - 在基于页面的应用程序中的 webview 上录制时如何隐藏/取消隐藏 View ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/19724592/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/19724592/
</a>
</p>
页:
[1]