2016-03-01 55 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