0

我正在使用UIButton,单击它时我想在我的帮助下显示我的内容,NSMutableArrayUITableViewUIPopOverControllerUITableView弹出一个其单元格显示我的内容NSMutableArray

我正在使用以下代码行:

UITableViewController *table= [[UITableViewController alloc]init];

table.delegate = self;

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:table];
self.popoverController = popover;          
popoverController.delegate = self;


NSString *hDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString *hFilePath = [hisDir stringByAppendingPathComponent:@"hhhh.txt"];

NSArray *array = [NSArray arrayWithContentsOfFile:hFilePath ];
NSMutableArray *kkkk = [[NSMutableArray alloc] init];
for (NSDictionary *dict in array) {
    [kkkk addObjectsFromArray:[dict allKeys]];    
}

table = [[UIImageView alloc] initWithFrame:[window bounds]];
// Set up the image view and add it to the view but make it hidden
[window addSubview:table];
table.hidden = YES;
[window makeKeyAndVisible];

我无法在UITableView我的UIButton. 谁能帮我整理一下?

4

3 回答 3

1

在 中显示的一种方法UITableViewUIPopOverController创建一个新UIViewController类。initWithContentViewController并在方法中调用它UIPopOverController

1.创建一个新的UIViewControllerUITableViewController类。创建它的一个实例。

2.initWithContentViewController在方法中使用实例UIPopOverController

3.提及它应该从哪里“弹出”

例如在你的Button行动中:

-(IBAction)yourButtonAction:(id)sender

{
   YourNewViewController*newVC=[[YourNewViewController alloc]init];

   UIPopoverController*somePopOver=[[UIPopoverController alloc]initWithContentViewController:catergoryVC]; //Tell which view controller should be shown
   [somePopOver setPopoverContentSize:CGSizeMake(200, 200)]; // set content size of popover
   [somePopOver presentPopoverFromRect:yourButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; //From where it should "pop"

}

看来你想从一个UIBarButtonItem所以而不是presentPopoverFromRect使用presentPopoverFromBarButtonItem

 [somePopOver presentPopoverFromBarButtonItem:yourBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
于 2012-06-26T10:35:14.100 回答
1

如果您想在按下按钮单击时显示弹出框,则首先在视图控制器中添加您的按钮,按如下方式显示该视图控制器:在应用程序委托中编写代码:

MyViewController *viewController = [[MyViewController alloc] init];
[self.window addSubView:viewController.view];

在 MyViewController 添加按钮并为该按钮 displayPopup 提供目标,如下所示:

-(void)displayPopup:(id)sender
{
    UITableViewController *tblViewPopover = [[UITableViewController alloc] init];
    tblViewPopover.tableView.delegate = self;
    tblViewPopover.tableView.dataSource = self;
    tblViewPopover.tableView.backgroundColor = [UIColor whiteColor];
    tblViewPopover.tableView.separatorStyle= UITableViewCellSeparatorStyleSingleLine;

    float theWidth = 280;
    tblViewPopover.contentSizeForViewInPopover = CGSizeMake(theWidth,200);

    if(m_popOvrController){
        [m_popOvrController dismissPopoverAnimated:NO];
        [m_popOvrController release];
        m_popOvrController=nil;
    }    
    m_popOvrController = [[UIPopoverController alloc] initWithContentViewController:tblViewPopover];
    [tblViewPopover release];

        [m_popOvrController presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];

}

您可以使用 tableview 委托方法在 tableview 中显示数据。

于 2012-06-26T10:52:25.207 回答
0

我认为,UIPopoverViewController 是使用 UIViewController 初始化的,而这里你使用的是 UIView(UITableView)。

您可以尝试改用 UITableViewController 吗?

此外,如果在您使用代码创建它时事情没有按计划工作,请尝试显式使用 XIB。

这应该会有所帮助。

于 2012-06-26T10:32:16.510 回答