2013-03-21 186 views
0

我正在使用圖書館KYCircleMenu。你可以通過here找到它。我也在使用故事板。我做了從KYCircleMenu不能從我的班級執行繼續

@interface MenuViewController : KYCircleMenu 

接下來,我已經實現了我的initWithCoder這樣派生的類MenuViewController。

- (id)initWithCoder:(NSCoder*)aDecoder 
{ 
    NSLog(@"called"); 
    if(self = [self initWithButtonCount:kKYCCircleMenuButtonsCount 
           menuSize:kKYCircleMenuSize 
          buttonSize:kKYCircleMenuButtonSize 
       buttonImageNameFormat:kKYICircleMenuButtonImageNameFormat 
         centerButtonSize:kKYCircleMenuCenterButtonSize 
       centerButtonImageName:kKYICircleMenuCenterButton 
     centerButtonBackgroundImageName:kKYICircleMenuCenterButtonBackground]) 
    { 


    } 
    return self; 
} 

最後我實現了一個方法從KyCicrleMenu RunButtonActions。此方法告訴我在菜單中按下了哪個按鈕。所以在這個方法中,我正在嘗試對另一個視圖控制器執行segue。我正在這樣做。

NSLog(@"tag is %d",[sender tag]); 
    [self performSegueWithIdentifier:@"showNews" sender:self]; 

(日誌給我從按下按鈕的按鈕標記)。 出於某種原因,我不斷收到此錯誤。

Receiver (<MenuViewController: 0x1cd7cf50>) has no segue with identifier 'showNews'' 

這是我的故事板的屏幕截圖。

enter image description here

任何人可以幫助我這個惱人的問題?

親切的問候

+0

你忘了調用super initWithCoder:? – jrturton 2013-03-21 07:39:12

+0

initWithCodeR裏面應該做些什麼? – Steaphann 2013-03-21 07:48:13

+0

其中是執行segue的代碼寫入? – Rakesh 2013-03-21 08:28:55

回答

1
- (id)initWithCoder:(NSCoder*)aDecoder 
{ 
    NSLog(@"called"); 
    if(self = [self initWithButtonCount:kKYCCircleMenuButtonsCount 
           menuSize:kKYCircleMenuSize 
          buttonSize:kKYCircleMenuButtonSize 
       buttonImageNameFormat:kKYICircleMenuButtonImageNameFormat 
         centerButtonSize:kKYCircleMenuCenterButtonSize 
       centerButtonImageName:kKYICircleMenuCenterButton 
     centerButtonBackgroundImageName:kKYICircleMenuCenterButtonBackground]) 
    { 


    } 
    return self; 
} 

在這裏,你什麼都不做與aDecoder對象 - 這包含了所有的從故事板(包括SEGUE)的信息。相反,您正在創建一個全新的對象,而忽略了您在故事板中設置的任何內容。

我已經快速瀏覽了一下版本庫,它似乎並不適合在故事板中使用 - 它實現了自己的loadView方法,它具有指定的初始化器等等。在調用[super initWithCoder:aDecoder];之後,您可能需要使用它來設置這些屬性,可能是從指定的初始化程序中提取設置代碼並將其放入單獨的方法中。