Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在基于页面的应用程序中,在webview上录制时如何隐藏/取消隐藏视图_Ios_Objective C_Uiview_Uiwebview_Uipageviewcontroller - Fatal编程技术网

Ios 在基于页面的应用程序中,在webview上录制时如何隐藏/取消隐藏视图

Ios 在基于页面的应用程序中,在webview上录制时如何隐藏/取消隐藏视图,ios,objective-c,uiview,uiwebview,uipageviewcontroller,Ios,Objective C,Uiview,Uiwebview,Uipageviewcontroller,我想隐藏/取消隐藏灰色视图(有按钮),它位于奶油色/比格色网络视图的顶部-请参见附件图片 我使用了xcode中提供的基于页面的应用程序模板 方法1:隐藏/取消隐藏控制器内部 我曾尝试在同一控制器中隐藏/取消隐藏但问题是每次创建此控制器的新实例时,隐藏/取消隐藏的布尔值都会丢失 方法2:协议和代表 我还尝试使用委托/协议从其父控制器维护其状态,但它从未进入if块- 如果([self.delegateReadingToolbar……..块从未被调用 -(void)touchesEnded:(NSS

我想隐藏/取消隐藏灰色视图(有按钮),它位于奶油色/比格色网络视图的顶部-请参见附件图片

我使用了xcode中提供的基于页面的应用程序模板

方法1:隐藏/取消隐藏控制器内部
我曾尝试在同一控制器中隐藏/取消隐藏
但问题是每次创建此控制器的新实例时,隐藏/取消隐藏的布尔值都会丢失

方法2:协议和代表
我还尝试使用委托/协议从其父控制器维护其状态,但它从未进入if块-
如果([self.delegateReadingToolbar……..块从未被调用

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];

if(touch)
{

    CGPoint location = [touch locationInView: [touch view]];

    if (CGRectContainsPoint(webViewTouch,  location))
    {

        //do whatever
        NSLog(@"webView Touched");

        if (self.showReadingToolBar)
        {

            self.showReadingToolBar = NO; // approach 1
            self.viewReadingToolBar.hidden = NO;

            // approach 2
            if ([self.delegateReadingToolbar respondsToSelector:@selector(contentViewDidFinish:showStatus:)]) 
            { // this block is never called

                [self.delegateReadingToolbar contentViewDidFinish:self showStatus:NO];

            }


        }
        else
        {

            self.showReadingToolBar = YES;
            self.viewReadingToolBar.hidden = YES;
            [self.delegateReadingToolbar contentViewDidFinish:self showStatus:YES];

        }



    }
}

}
方法2编码:

ChildController.h

@class ChildController;

@protocol ReadingToolbarShowDelegate <NSObject>

-(void)contentViewDidFinish:(contentView *)controller showStatus:(BOOL)show;

@end

@property (nonatomic,weak)id<ReadingToolbarShowDelegate>delegateReadingToolbar;
#import "ChildController.h"

@interface ParentController :      UIViewController<UIPageViewControllerDataSource,UIPageViewControllerDelegate,ReadingToolbarShowDelegate>

如果你alloc/init一个新的控制器,以前设置的值就会消失。你实际上是在创建一个新的对象。我看到了几种不同的方法,你可以做到这一点

  • 将您的控制器放置在导航控制器中,只需将其他控制器推上或推下堆栈即可。这样您就不必实例化新对象

  • 您可以将所需的显示配置保存在NSUserDefaults键/值对中。每当需要创建此类型的新对象时,它都会在NSUserDefaults中查找该值


  • 如果你alloc/init一个新的控制器,以前设置的值就会消失。你实际上是在创建一个新的对象。我看到了几种不同的方法,你可以做到这一点

  • 将您的控制器放置在导航控制器中,只需将其他控制器推上或推下堆栈即可。这样您就不必实例化新对象

  • 您可以将所需的显示配置保存在NSUserDefaults键/值对中。每当需要创建此类型的新对象时,它都会在NSUserDefaults中查找该值


  • 在我的情况下,您的选项1是不可行的-因为我必须处理1000多个页面-我还必须保持动态-它可能会增长任意数量的页面。选项2-NSUserDefault很好,但我们不能过度使用以生成1000个键/值对-您知道NSUserDefaults的可用限制是什么吗?我是已经在示例项目中使用了它,但当我将相同的代码移动到最终项目时,它不起作用。您是否有一个始终存在的主容器?我使用了NSUserDefaults,但仍然没有找到所需的结果。在我的情况下,您的选项1是不可行的,因为我必须处理1000多个页面,并且我必须保持它的动态性ll-它可能会增加任意数量的页面。选项2-NSUserDefault很好,但我们不能过度使用以生成1000个键/值对-您知道NSUserDefaults的可用限制是什么吗?这样我就可以实现它协议了-我已经在示例项目中使用了它,但当我将相同的代码移动到最终项目时它不起作用。您有主c吗整个时间都在使用的容器?我使用了NSUserDefaults,但仍然找不到所需的结果
    -(void)ChildControllerDidFinish:(contentView *)controller showStatus:(BOOL)show
    {
    
       showReadingToolbar = show;
    }