0

我正在开发适用于iPad的应用程序。我可以用VIEWView中的一些列表显示UIPopoverController。UIPopoverController&导航到UIViewController?

当用户从表中选择一行时,我想从VIEW1导航到VIEW2。

换句话说,

  1. VIEW1包含button1的。

  2. 当用户按下按钮1时,在VIEW1上显示弹出窗口。

  3. 在弹出窗口中,有一些表格有一些行。 (VIEW1)

  4. 当用户选择一行时,它应该调用VIEW2,即从VIEW1导航到VIEW2。

感谢您的任何帮助。

+0

VIEW1是有点混乱,我...它有一个按钮,然后它在酥料饼作为表视图? – 2012-08-06 09:12:33

+0

你在这里遇到什么问题? – 2012-08-06 09:13:46

+0

听起来就像在UIPopoverController中只使用'UITableViewController'作为'contentViewController'一样...你尝试了什么,什么不起作用? – 2012-08-06 09:17:17

回答

0

在你将要使用的方法didSelectRowAtIndexPath呈现视图2表视图控制器文件,如:

[self presentViewController:view2controller animated:YES completion:nil]; 
1

在的tableview委托方法didSelectRowAtIndexPath方法可以调用方法如下:

1。初始化弹出窗口控制器时,如下定义目标和选择器: [theController setTarget:self andSelector:@selector(yourMethod :)];

2.and在其中包含的tableview视图控制器,可以如下定义setTarget方法:

-(void)setTarget:(id)inTarget andSelector:(SEL)inSelector { 
    mTarget = inTarget; 
    m_Selector = inSelector; 
} 

其中mTarget是ID类型和mSelector是选择器。

3.Then didSelectRowAtIndexPath方法可以调用yourMethod如下:

if ([m_Target respondsToSelector:m_Selector]) { 
     [m_Target performSelector:m_Selector withObject:nil]; 
    } 

如果表视图是相同的观点,那么你可以在didSelectRowAtIndexPath方法调用yourMethod。

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]; 
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. 
相关问题