Iphone UIPopoverController&;导航到UIViewController?

Iphone UIPopoverController&;导航到UIViewController?,iphone,xcode,uiviewcontroller,uipopovercontroller,uipopover,Iphone,Xcode,Uiviewcontroller,Uipopovercontroller,Uipopover,我正在为iPad开发应用程序。我能够显示UIPOPCovercontroller和tableView,并在VIEW1中显示一些列表 当用户从表中选择行时,我希望从VIEW1导航到VIEW2 换句话说, 视图1包含一个按钮1 当用户按下按钮1时,弹出窗口显示在视图1上 在popover中,有一个带有一些行的表。(图1) 当用户选择一行时,它应该调用VIEW2,即从VIEW1导航到VIEW2 谢谢您的帮助。在“表格视图”控制器文件中,您需要使用didSelectRowAtIndexPath方法来显示

我正在为iPad开发应用程序。我能够显示UIPOPCovercontroller和tableView,并在VIEW1中显示一些列表

当用户从表中选择行时,我希望从VIEW1导航到VIEW2

换句话说,

  • 视图1包含一个按钮1

  • 当用户按下按钮1时,弹出窗口显示在视图1上

  • 在popover中,有一个带有一些行的表。(图1)

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


  • 谢谢您的帮助。

    在“表格视图”控制器文件中,您需要使用
    didSelectRowAtIndexPath
    方法来显示视图2,例如:

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

    在tableview委托方法didSelectRowAtIndexPath中,可以按如下方式调用方法:

    -(void)setTarget:(id)inTarget andSelector:(SEL)inSelector {
        mTarget = inTarget;
        m_Selector = inSelector;
    }
    
    if ([m_Target respondsToSelector:m_Selector]) {
            [m_Target performSelector:m_Selector withObject:nil];
        }
    
    1.初始化popover控制器时,按如下方式定义目标和选择器: [控制器设置目标:self和selector:@selector(yourMethod:)]

    2.在包含tableview的view controller中,您可以定义setTarget方法,如下所示:

    -(void)setTarget:(id)inTarget andSelector:(SEL)inSelector {
        mTarget = inTarget;
        m_Selector = inSelector;
    }
    
    if ([m_Target respondsToSelector:m_Selector]) {
            [m_Target performSelector:m_Selector withObject:nil];
        }
    
    其中mTarget为id类型,mSelector为选择器

    3.然后选择Rowatindexpath,您可以按如下方式调用您的方法:

    -(void)setTarget:(id)inTarget andSelector:(SEL)inSelector {
        mTarget = inTarget;
        m_Selector = inSelector;
    }
    
    if ([m_Target respondsToSelector:m_Selector]) {
            [m_Target performSelector:m_Selector withObject:nil];
        }
    

    如果表视图在同一视图中,那么您可以在didSelectRowAtIndexPath中调用您的方法。

    我找到了答案。只需将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];
    

    视图1让我有点困惑。。。它有一个按钮,然后作为表视图出现在popover中??您在这里面临什么问题?听起来就像是在
    UIPopopOvercontroller
    中使用
    UITableViewController
    作为
    contentViewController
    。。。您尝试了什么,什么不起作用?是否要在tableview行上打开新视图单击popover?第一个解决方案:检查tableview的did select方法。