2013-11-01 15 views
2

我想要隱藏/取消隱藏灰色視圖(其中有按鈕),它位於cream/biege上面的webView - 請參閱附圖如何在基於頁面的應用程序的webview中錄製時隱藏/取消隱藏視圖

PageBased App

我已經使用在Xcode提供一個基於網頁應用程序模板。

方法1:隱藏/內部控制器取消隱藏
我試圖隱藏在同一個控制器
/取消隱藏,但問題是隱藏/取消隱藏創建和布爾值這個控制器的每一次新的實例丟失

方法2:協議&代表
我還試圖使用委託/協議從它的父控制器保持其狀態,但它從未得到內如果塊 -
如果([self.delegateReadingToolbar ..... ...塊是nev呃打電話。

-(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; 

ParentController.h

#import "ChildController.h" 

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

ParentController.m

-(void)ChildControllerDidFinish:(contentView *)controller showStatus:(BOOL)show 
{ 

    showReadingToolbar = show; 
} 

回答

4

如果您分配/初始化一個新的控制器以前設置的值將會消失。你基本上是在創建一個新的對象。我看到有幾種不同的方式可以做到這一點。

  1. 將你的控制器導航控制器內,只需按下開啓或關閉堆棧中的其他人。這樣你就不必實例化一個新的對象。

  2. 您可以將所需的顯示配置保存在NSUserDefaults鍵/值對中。無論何時您需要創建此類型的新對象,它都會在NSUserDefault中查找該值。

+0

您的選擇1在我的情況下不可行 - 因爲我必須處理更多的1000頁 - 而且我還必須保持它的動態 - 它可以長大任意數量的頁面。 –

+0

選項否2 - NSUserDefault是好的,但我們不能過度使用1000個鍵/值對 - 你知道NSUserDefaults有什麼可用限制 –

+0

有沒有辦法實現它協議 - 我已經在示例項目中使用它,但它的當我將相同的代碼移動到我的最終項目時不起作用 –

相關問題