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. 
相關問題