我正在使用UIButton
,点击它我想在NSMutableArray
的{{1}}的帮助下显示我UITableView
中的内容,即我想要弹出一个UIPopOverController
,其单元格显示我UITableView
的内容。
我使用以下代码行:
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
。任何人都可以帮我解决一下吗?
答案 0 :(得分:1)
在UITableView
中显示UIPopOverController
的一种方法是创建一个新的UIViewController
类。并在initWithContentViewController
的{{1}}方法中调用它。
1。创建新的UIPopOverController
或UIViewController
课程。创建它的实例。
2。使用UITableViewController
initWithContentViewController
方法中的实例。
3. 提及它应该“弹出”
例如UIPopOverController
操作:
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
答案 1 :(得分:1)
如果要在按下按钮时显示弹出按钮,则首先在viewcontroller中添加按钮,按如下方式显示该视图控制器: 在app delegate中写代码:
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中显示数据。
答案 2 :(得分:0)
我认为,UIPopoverViewController是使用UIViewController初始化的,在这里你使用的是UIView(UITableView)。
您可以尝试使用UITableViewController吗?
此外,如果使用代码创建它时根据计划不能正常工作,请尝试明确使用XIB。
这应该有所帮助。