UIPopOver管理和USE_BLOCK_IN_FRAME错误

时间:2012-07-02 17:07:53

标签: objective-c ios uipopover

我最近升级到iOS 6 Beta并且遇到了一些问题。 (我知道它是测试版,但我还不相信它实际上与iOS 6相关。)

该问题包含以下参数:

  1. 自定义UITableViewCell,其UIButton个对象生成UIPopOver个对象,这些对象来自被点按的UIButton的框架。
  2. 显示UIPopOver,然后旋转iPad。
  3. 我的视图在旋转动画完成时取消UIPopOver,然后重新显示UIPopOver
  4. 相关信息:

    1. 第一次轮换正常; UIPopOver被解雇并重新正确显示。
    2. 第二次轮换(EVERY TIME)是打破应用程序的原因。
    3. 我有一个符号断点集,但我没有得到任何有用的信息。
    4. 我对UIPopOverUIBarButton个对象提供的UIToolbar个对象做了同样的事情。我对这些过渡没有任何问题。
    5. 这是一个与代码相关的新问题,该代码在一段时间内没有发生变化。
    6. 我收到的错误是:“警告:尝试使用不在框架中的块创建USE_BLOCK_IN_FRAME变量。”
    7. 这是与轮换相关的代码:

      - (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 :(得分:1)

这是我的正式答案 - 我认为你的popover正试图在屏幕外显示,或者可能来自已经回收的细胞。 ;)