实际上我在单元格中创建了一个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];
}
}
但它不起作用。请帮忙
答案 0 :(得分:2)
您的问题是实例,因为您没有使用现有实例,因此您始终会创建未正确连接在一起的新实例。
我想象你有一个显示单元格的集合视图控制器。这是类Collection
,单元格是类Cell
。
您的目的是让单元格回调到显示它们的集合视图控制器。但是,您的代码正在创建一个新的集合视图控制器。
Collection *obj_Collection = [[Collection alloc] init];
这个新实例没有连接任何东西,没有加载视图,也没有导航堆栈的一部分。所以,当你致电self.navigationController
时,你会得到“没有”的信息。回来。
你应该做的是将单元格传递给一个块,以便在按下按钮时执行,或它可以调用的委托。委托将是最初创建和配置单元的集合视图控制器实例。在配置单元格时将创建并传递该块