我正在为iPad开发应用程序。我能够使用tableView显示UIPopoverController,并在VIEW1中显示一些列表。
当用户从表中选择一行时,我想从VIEW1导航到VIEW2。
换句话说,
VIEW1包含一个button1。
当用户按下button1时,弹出窗口显示在VIEW1上。
在popover中,有一个包含一些行的表。 (VIEW1)
当用户选择一行时,它应该调用VIEW2,即从VIEW1导航到VIEW2。
感谢您的帮助。
答案 0 :(得分:1)
在tableview委托方法didSelectRowAtIndexPath中你可以调用方法如下:
1.初始化popover控制器定义目标和选择器,如下所示: [theController setTarget:self andSelector:@selector(yourMethod :)];
2.在包含tableview的视图控制器中,您可以按如下方式定义setTarget方法:
-(void)setTarget:(id)inTarget andSelector:(SEL)inSelector {
mTarget = inTarget;
m_Selector = inSelector;
}
其中mTarget是id类型,mSelector是选择器。
3.然后选择了RowRowAtIndexPath,您可以按如下方式调用yourMethod:
if ([m_Target respondsToSelector:m_Selector]) {
[m_Target performSelector:m_Selector withObject:nil];
}
如果表视图在同一视图中,则可以在didSelectRowAtIndexPath中调用yourMethod。
答案 1 :(得分:0)
在表视图控制器文件中,您将要使用didSelectRowAtIndexPath
方法来呈现view2,例如:
[self presentViewController:view2controller animated:YES completion:nil];
答案 2 :(得分:0)
我找到了答案。只需将UITableViewController添加到UIPopOverController即可从VIEW1导航到VIEW2。
感谢您的努力。以下是代码。
tableViewController = [[UITableViewController alloc]initWithStyle:UITableViewStylePlain];
tableViewController.tableView = tblView;
tableViewController.tableView.delegate = self;
tableViewController.tableView.dataSource = self;
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:tableViewController];
self.popoverController = popover;
popoverController.delegate = self;
[popoverController setPopoverContentSize:CGSizeMake(442.0f, 527.0f)];
[popoverController presentPopoverFromRect:CGRectMake(bkBtn.frame.origin.x+bkBtn.frame.size.width/2, bkBtn.frame.origin.y, 442.0f, 527.0f) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
[tableViewController.tableView reloadData];
答案 3 :(得分:0)
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
VIEW2 *view2=[[VIEW2 alloc]initWithName:@"VIEW2" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:view2 animated:YES];
[view2 release];
}
just try it.This will help you.