Ios 在MMDROURCONTROLLER上传递数据

Ios 在MMDROURCONTROLLER上传递数据,ios,iphone,objective-c,uiviewcontroller,uinavigationcontroller,Ios,Iphone,Objective C,Uiviewcontroller,Uinavigationcontroller,我正在我的应用程序中使用。当我想将数据从MMExampleLeftSideDrawerViewController传递到MMExampleCenterTableViewController时,我不能这样做 您可以在源代码中看到MMExampleLeftSideDrawerViewController和MMExampleCenterTableViewController类。 源代码: 我添加了以下代码: MMExampleCenterTableViewController.h -(void)doS

我正在我的应用程序中使用。当我想将数据从MMExampleLeftSideDrawerViewController传递到MMExampleCenterTableViewController时,我不能这样做

您可以在源代码中看到MMExampleLeftSideDrawerViewController和MMExampleCenterTableViewController类。 源代码:

我添加了以下代码:

MMExampleCenterTableViewController.h

-(void)doSomethingUseful:(NSString *)data;
MMExampleCenterTableViewController.m

-(void)doSomethingUseful:(NSString *)data
{
    NSLog(@"dosometing useful %@",data);
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MMExampleCenterTableViewController * mycenterController=(MMExampleCenterTableViewController *)self.mm_drawerController.centerViewController;

    [mycenterController doSomethingUseful:@"mydata"];

    //...........
}
MMExampleLeftSideDrawerViewController.m

-(void)doSomethingUseful:(NSString *)data
{
    NSLog(@"dosometing useful %@",data);
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MMExampleCenterTableViewController * mycenterController=(MMExampleCenterTableViewController *)self.mm_drawerController.centerViewController;

    [mycenterController doSomethingUseful:@"mydata"];

    //...........
}
当在MMExampleLeftSideDrawerViewController上单击tableview时,我有一个问题,您可以在源代码中看到

问题日志为: “NSInvalidArgumentException”,原因:“-[MMNavigationController DoSomethingSuve:]:发送到实例的选择器无法识别

因此它不是同一个对象的类。(
MMExampleCenterTableViewController*myCenter控制器=(MMExampleCenterTableViewController*)self.mm\u抽屉控制器.centerViewController;


如何将数据发送到MMExampleCenterTableViewController

它看起来像self.mm\u drawerController.centerViewController是一个导航控制器。您想要的可能是它的topViewController,请尝试以下操作:

 MMExampleCenterTableViewController * mycenterController= [(MMNavigationController *)self.mm_drawerController.centerViewController topViewController];

谢谢@rdelmar。它运行得很好。但您如何理解topviewController?哪种情况我们能理解?@Erhandmirci,我不确定我是否理解你的问题。topViewController是UINavigationController的属性,返回堆栈顶部的控制器。如果堆栈上只有一个控制器,它将是导航控制器的根视图控制器。@好的,请仔细阅读我的问题。我说我有问题;)