2013-03-21 187 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];之后,您可能需要使用它来设置这些属性,可能是从指定的初始化程序中提取设置代码并将其放入单独的方法中。