2016-03-01 41 views
0

实际上,我在单元中创建了一个按钮,该单元从另一个类访问一个方法。将一个类的方法调用到ios中的另一个类

#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

定义“不工作”。另外,如果你使用的是故事板,你不应该像这样初始化你的视图控制器。 – Raptor

+0

我使用XIB不是storyBoard –

+0

检查NSLog(@“%@”,self.navigationController); ..要导航新屏幕,您必须具有导航控制器对象 –

回答

2

你的问题是实例,因为你没有使用现有的实例,你总是创建新的实例没有正确连接在一起。

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

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

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

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

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

+0

okk我明白了,但我不知道哪个代表使用.. –

+0

委托你可以在单元文件中创建一个协议,集合符合并实现它,单元会在按钮动作方法中使用它,当它配置单元时集合会自行设置 – Wain