在ios中将一个类的方法调用到另一个类

时间:2016-03-01 09:29:20

标签: ios objective-c

实际上我在单元格中创建了一个Button,可以从另一个类中访问一个方法。

#import "Cell.h"
#import "Collection.h"

@implementation Cell


-(IBAction)onClick
{
    Collection *obj_Collection = [[Collection alloc] init];
 [obj_collection goTonavigation];

}

和goTonavogation的方法在Collection中创建。

#import "Cell.h"
    #import "Collection.h"
#import "NavigationViewController.h"

    @implementation Cell

-(void)goToNavigation
{
    NavigationViewController *obj_NavigationViewController = [[NavigationViewController alloc] initWithNibName:@"NavigationViewController" bundle:nil];
    [self.navigationController pushViewController:obj_NavigationViewController animated:YES];
}
}

但它不起作用。请帮忙

1 个答案:

答案 0 :(得分:2)

您的问题是实例,因为您没有使用现有实例,因此您始终会创建未正确连接在一起的新实例。

我想象你有一个显示单元格的集合视图控制器。这是类Collection,单元格是类Cell

您的目的是让单元格回调到显示它们的集合视图控制器。但是,您的代码正在创建一个新的集合视图控制器。

Collection *obj_Collection = [[Collection alloc] init];

这个新实例没有连接任何东西,没有加载视图,也没有导航堆栈的一部分。所以,当你致电self.navigationController时,你会得到“没有”的信息。回来。

你应该做的是将单元格传递给一个块,以便在按下按钮时执行,它可以调用的委托。委托将是最初创建和配置单元的集合视图控制器实例。在配置单元格时将创建并传递该块