1

プロジェクトでWEPopoverを使用しています。これを統合すると、PopoverControllerが表示されます。contentViewControllerとして追加したクラスは、UITableViewControllerのサブクラスです。didSelectRowAtIndexPathに別のビューコントローラーをロードしていますが、このビューが初めて表示されません。もう一度タップすると表示されます。コードを追加しています。この問題から私を助けてください。

UITouchのコード:-

if([[touch view] isKindOfClass:[backGroundImageView class]] && numTaps ==1)

    { 

            CGPoint startLocation   = [touch locationInView:backGroundImageView];

             startX = startLocation.x;
             startY = startLocation.y;

        CGRect rect = CGRectMake(startX, startY, 300, 90); 



        if(self.popoverController)
        {

            [self.popoverController dismissPopoverAnimated:YES];
            self.popoverController = nil;

        }
        else
        {

        UIViewController *contentViewController = [[WEPopoverContentViewController alloc] initWithStyle:UITableViewStylePlain];


        self.popoverController = [[[popoverClass alloc] initWithContentViewController:contentViewController] autorelease];



        if ([self.popoverController respondsToSelector:@selector(setContainerViewProperties:)]) {
            [self.popoverController setContainerViewProperties:[self improvedContainerViewProperties]];
        }

        self.popoverController.delegate = self;

        //Uncomment the line below to allow the table view to handle events while the popover is displayed.
        //Otherwise the popover is dismissed automatically if a user touches anywhere outside of its view.

        self.popoverController.passthroughViews = [NSArray arrayWithObject:backGroundImageView];
        NSLog(@"rect1: %@", NSStringFromCGRect(rect));

        [self.popoverController presentPopoverFromRect:rect  
                                                inView:backGroundImageView 
                              permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown|
                                                        UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight)
                                              animated:YES];


}
4

1 に答える 1

1

このelse小さな変更を部分的に試してみると、役立つかもしれません。私はこのように使用しており、正常に動作します。

self.popoverController = [[[WEPopoverContentViewController alloc] initWithContentViewController:yourAnotherViewController] autorelease];

self.popoverController が WEPopoverContentViewController のオブジェクトである
と仮定します yourAnotherViewController が割り当てられていると仮定します

于 2012-08-06T14:37:29.513 に答える