2012-07-03 113 views
1

我有子类的UIButton发生崩溃presentPopoverFromRect

在presentPopoverFromRect(EXC_BAD_ACCESS

init方法我在openList

[listPopOver presentPopoverFromRect:self.frame 
          inView:self.superview 
          permittedArrowDirections:UIPopoverArrowDirectionUp 
          animated:YES]; 

添加的目标按钮

[self addTarget:self action:@selector(openList:) forControlEvents:UIControlEventTouchUpInside]; 

但应用

enter image description here

+0

我认为你需要改变 - self.view.superview而不是self.superview在presentPopoverFromRect方法 – rishi

+0

EXC_BAD_ACCESS意味着你期望的(有效的)不是。检查self.superView – tagyro

+0

@rishi我也试过self.superview。 。 。 –

回答

2

启用NSZombie以检查它的确切实例创建问题,好像有在表视图中的一些问题。

+1

是Rishi,我正在使用'@property(readwrite,assign)NSArray * listArray;'我改变了'assign'到'retain' –

0
if(![listPopOver isPopoverVisible]){ 

    listPopOver = [[listPopOverViewController alloc] initWithNibName:@"listPopOverViewController" bundle:nil]; 
    listPopOver.viewDelegate=self; 
    listPopOver = [[[UIPopoverController alloc] initWithContentViewController:PopOver] retain]; 
    [listPopOver setPopoverContentSize:CGSizeMake(670.0f, 380.0f)]; 
    permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
    [listPopOver presentPopoverFromRect:CGRectMake(50, 160, 670, 380) inView:self.view permittedArrowDirections:0 
            animated:YES]; 
    } 
else{ 

    [listPopOver dismissPopoverAnimated:YES]; 
} 
+0

不适合我。 。但是,如果条件是 –

+0

请检查 - 笔尖名称是否正确? –

+0

感谢您的resposne,rishi评论解决了我的问题 –

2

错误:

UIPopoverController* pop = [[UIPopoverController alloc] initWithContentViewController:[[UIViewController alloc] init]]; 
    [pop presentPopoverFromRect:[tableView cellForRowAtIndexPath:indexPath].frame inView:tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

没有错误:

@property (strong, nonatomic) UIPopoverController* pop; 
@synthesize pop = _pop; 

pop = [[UIPopoverController alloc] initWithContentViewController:[[UIViewController alloc] init]]; 
    [pop presentPopoverFromRect:[tableView cellForRowAtIndexPath:indexPath].frame inView:tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];