Ipad PopOverview控制器中的UITableView

Ipad PopOverview控制器中的UITableView,ipad,xcode4.5,uipopovercontroller,Ipad,Xcode4.5,Uipopovercontroller,我正在开发一个ipad应用程序,我需要一个popoverviewController中的UItableView。两天以来,我一直在为此奋斗。我得到了popoverviewController,但无法在其中获得UItableView。此外,我可以看到popover周围有很多阴影,我可以在屏幕上的任何地方单击鼠标就将popover清除 -(IBAction)btnClick { if([array count]!=0) { UIViewController* popoverviewContent

我正在开发一个ipad应用程序,我需要一个popoverviewController中的UItableView。两天以来,我一直在为此奋斗。我得到了popoverviewController,但无法在其中获得UItableView。此外,我可以看到popover周围有很多阴影,我可以在屏幕上的任何地方单击鼠标就将popover清除

-(IBAction)btnClick
{
if([array count]!=0)
{
  UIViewController* popoverviewContent = [[UIViewController alloc] init]; //ViewController
            if(autocompleteTableView)
                [autocompleteTableView removeFromSuperview];

            autocompleteTableView = [[UITableView alloc] initWithFrame:CGRectMake(0,0,270,250) style:UITableViewStyleGrouped];
            autocompleteTableView.delegate = self;
            autocompleteTableView.dataSource = self;
            autocompleteTableView.scrollEnabled = YES;
            autocompleteTableView.backgroundColor = [UIColor lightTextColor];

            autocompleteTableView.backgroundView = nil;
            autocompleteTableView.backgroundColor = [UIColor whiteColor];


            autocompleteTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
            [autocompleteTableView setSeparatorColor:[UIColor orangeColor]];


          popoverviewContent.view = autocompleteTableView;
                    UIPopoverController    *popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverviewContent];
            popoverController.delegate=self;
            [popoverviewContent release];

            [popoverController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];


            [popoverController presentPopoverFromRect:CGRectMake(410, 120,270, 250)inView:testscroll permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];


            [autocompleteUrls removeAllObjects];
            for(int i=0;i<[array count];i++)
            {
                NSString *curString = [[array objectAtIndex:i] valueForKey:@"FName"];
                [autocompleteUrls addObject:curString];

            }


        }
        [autocompleteTableView reloadData];
  }      
-(iAction)b单击
{
如果([数组计数]!=0)
{
UIViewController*popoverviewContent=[[UIViewController alloc]init];//ViewController
if(自动完成表格视图)
[autocompleteTableView从SuperView移除];
autocompleteTableView=[[UITableView alloc]initWithFrame:CGRectMake(0,0270250)样式:UITableViewStyleGroup];
autocompleteTableView.delegate=self;
autocompleteTableView.dataSource=self;
autocompleteTableView.scrollEnabled=是;
autocompleteTableView.backgroundColor=[UIColor lightTextColor];
autocompleteTableView.backgroundView=nil;
autocompleteTableView.backgroundColor=[UIColor whiteColor];
autocompleteTableView.separatorStyle=UITableViewCellSeparatorStyleNone;
[autocompleteTableView setSeparatorColor:[UIColor orangeColor]];
popoverviewContent.view=autocompleteTableView;
UIPopoverController*popoverController=[[UIPopoverController alloc]initWithContentViewController:popoverviewContent];
popoverController.delegate=self;
[PopOverview内容发布];
[popoverController设置PopOverContentSize:CGSizeMake(320264)动画:否];
[popoverController presentPopoverFromRect:CGRectMake(410120270250)查看:测试滚动权限箭头方向:UIPopOverErrorDirectionUp动画:是];
[自动完成删除所有对象];

对于(int i=0;iUITableViewController*tableViewController=[[UITableViewController alloc]init]

    UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController: tableViewController];
    [popover setDelegate:self];

    self.popoverViewController = popover;

    CGRect buttonFrame = [someButton frame];
    [popover setPopoverContentSize:CGSizeMake(300, 260)];

    [popover presentPopoverFromRect: buttonFrame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
检查此实现以在popover中显示tableview

PS:提及所需的实现,以便更好地检查您的问题


谢谢。

我认为您的实现没有那么优化。所以让我优化一下。它会解决您的问题

if(!popoverviewController)
    {
        //Always best is to implement TableviewController than creating tableview and adding it to UIViewController
        tableViewController = [[UITableViewController alloc]init];

        //Should set contentsize of the presenting viewcontroller before adding to popovercontroller
        [tableViewController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];

        Assign yout Tableview propertis here
        //Set the TableViewCOntroller object and PopOvercontroller object globally.
        popoverviewController = [[UIPopoverController alloc]initWithContentViewController: tableViewController];

        //Assign some properties of popover Controller here

    }
//This will always execute so you should dat actions and present the viewController
for(int i=0;i<[array count];i++)
    {
        NSString *curString = [[array objectAtIndex:i] valueForKey:@"FName"];
        [autocompleteUrls addObject:curString];

    }
[autocompleteTableView reloadData];
[popoverviewController presentPopoverFromRect: buttonFrame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
if(!popoverviewController)
{
//最好是实现TableviewController,而不是创建tableview并将其添加到UIViewController
tableViewController=[[UITableViewController alloc]init];
//在添加到popovercontroller之前,应设置显示viewcontroller的contentsize
[tableViewController setPopoverContentSize:CGSizeMake(320264)动画:否];
在此处指定您的Tableview属性
//全局设置TableViewCOntroller对象和PopOvercontroller对象。
popoverviewController=[[UIPopoverController alloc]initWithContentViewController:tableViewController];
//在此处指定popover控制器的一些属性
}
//这将始终执行,因此您应该执行dat操作并显示viewController

对于(int i=0;iI由于未捕获的异常“NSInvalidArgumentException”而终止应用程序时出现此错误,原因:'-[UITableViewController setPopoverContentSize:动画:]:未识别的选择器发送到实例。我该怎么办?