2012-07-02 24 views
0

我最近已升級到iOS 6 Beta,並遇到一些問題。 (我知道這是一個測試版,但是我還沒有確信,它實際上的iOS 6有關的。)UIPopOver管理和USE_BLOCK_IN_FRAME錯誤

問題有以下參數:

  1. 定製UITableViewCellUIButton對象產生UIPopOver對象,從被挖掘的UIButton的框架呈現。
  2. 顯示UIPopOver,然後iPad旋轉。
  3. 旋轉動畫完成後,我的視圖關閉了UIPopOver,然後重新顯示UIPopOver

相關信息:

  1. 第一旋轉前進細; UIPopOver被解散並重新正確顯示。
  2. 第二輪(每次)是什麼打破了應用程序。
  3. 我有一個符號斷點集,但我沒有得到任何有用的信息。
  4. 我正在做同樣的事UIPopOver對象從UIBarButton對象UIToolbar。我在這些轉變中沒有遇到任何問題。
  5. 這是一個與代碼相關的新問題,它在很長的一段時間內沒有改變。
  6. 我收到的錯誤是:「警告:試圖創建USE_BLOCK_IN_FRAME變量與不在框架中的塊。」

下面是執行與旋轉代碼:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
    if ([self PopOver]) { 
     [[self PopOver] dismissPopoverAnimated:YES]; 
     [self setPopOver:nil]; 
     [self ButtonPressed:[self TouchedCell]]; 
    } 
    [[self TableView1] reloadData]; 
    [[self TableView2] reloadData]; 
} 

- (void)ButtonPressed:(Cell *)cell { 
    [self setTouchedCell:cell]; 
    NSString *nibName = @"View"; 
    if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) { 
     nibName = @"View-iPad"; 
    } 

    ViewController *vc = [[ViewController alloc] initWithNibName:nibName 
                  bundle:nil]; 
    if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) { 
     UIPopoverController *popOver = [[UIPopoverController alloc] 
      initWithContentViewController:vc]; 
     [self setPopOver:popOver]; 
     [popOver setDelegate:self]; 
     [[self PopOver] setPopoverContentSize:CGSizeMake(320, 320)]; 
     [popOver presentPopoverFromRect:[[cell CheckButton] frame] 
           inView:[cell contentView] 
       permittedArrowDirections:UIPopoverArrowDirectionAny 
           animated:YES]; 
    } else { 
     // iPhone doesn't use PopOvers... 
    } 
} 

任何人都知道我下一步應該怎麼辦呢?

+1

在重新加載表後,是否有單元格試圖顯示從屏幕移出的彈出窗口? –

+0

我將不得不再次檢查,但我不認爲這是我所做的特定測試的情況。如果我做了一個'[tableView reloadData]',那不就是說我必須對'UITableViewCell' ***的引用可能無效嗎?我敢打賭,我試圖從一個(現在)不存在的細胞中呈現它。我會檢查,並感謝讓我想下來正確的路徑! – mbm29414

+0

@JerryJones如果你會留下你的評論作爲答案,我會接受它。它並不是完全解決了我的問題,但它足夠接近我的正確答案(顯然,我試圖從一個已經回收的UITableViewCell中展示PopOver)。謝謝! – mbm29414

回答

1

這裏是我的正式答案 - 我認爲你的彈出窗口試圖顯示屏幕外,或者可能來自已經回收的單元格。 ;)

+0

完美!這完全正確! ;-) – mbm29414