UIPopover问题调用新视图时

时间:2011-06-18 14:49:46

标签: xcode ipad uipopover

我在我的iPad应用程序中使用了UIPopover,但是当我使用IBAction从这个UIPopover调用一个视图时我有一个问题,这个视图打开但没有旋转我可以看到预览视图在UIPOPover后面旋转仍然开放。

我在调试器控制台上出现错误:

  

2011-06-18 16:34:49.562   大学校友[8540:207]观点   控制器从NO返回NO   -shouldAutorotateToInterfaceOrientation:   适用于所有界面方向。它   应该至少支持一个   取向。 wait_fences:失败了   收到回复:10004003

以下是我用来打开UIPOPOver的IBAction:

-(IBAction)barBtn3:(id)sender
{
    if (self.popoverController3 == nil) {
        PopOverSelfMain *selfserve = 
        [[PopOverSelfMain alloc] 
         initWithNibName:@"PopOverSelfMain" 
         bundle:[NSBundle mainBundle]]; 

    UIPopoverController *popover3 = 
    [[UIPopoverController alloc] initWithContentViewController:selfserve]; 

    popover3.delegate = self;
    [popover3 setPopoverContentSize:CGSizeMake(220, 220)];
    [selfserve release];

    self.popoverController3 = popover3;

    [popover3 release];
}


CGRect popover3Rect = [self.view convertRect:[btn3 frame] fromView:[btn3 superview]];

[self.popoverController3 presentPopoverFromRect:popover3Rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

}

然后在POPOver中我使用此方法打开一个新视图:

-(IBAction)actionevent:(id)sender{
Eventspage *listing = [[Eventspage alloc] initWithNibName:nil bundle:nil];
listing.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:listing animated:YES];
[listing release];

}

我是第一次使用POPOver而我错过了什么...... dismissPopover可以解决这个问题吗?或者我应该使用其他方法来调用视图吗?

1 个答案:

答案 0 :(得分:0)

这里不是调用“presentModalViewController”方法而是使用NSTimer直接调用它,您的问题将得到解决。我在我的项目中解决了这个问题,因为我遇到了同样的问题。

所以,你可以在你的项目中这样做。

- (IBAction为)的ActionEvent:(ID)发送方{

[NSTimer scheduledTimerWithTimeInterval:0.001 target:self selector:@selector(open_EventPage) userInfo:nil repeats:NO];

}

- (void)open_EventPage {     Eventspage * listing = [[Eventspage alloc] initWithNibName:nil bundle:nil];     listing.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;     [self presentModalViewController:列出动画:YES];     [上市发布]; }

如果您能在这里解决问题,请告诉我。