我正在使用图书馆KYCircleMenu。您可以在here上找到它。我也在使用故事板。我创建了一个派生自KYCircleMenu
的类MenuViewController@interface MenuViewController : KYCircleMenu
接下来我实现了我的initWithCoder。
- (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到另一个viewcontroller。我是这样做的。
NSLog(@"tag is %d",[sender tag]);
[self performSegueWithIdentifier:@"showNews" sender:self];
(日志从按下的按钮给我按钮标签)。 由于某种原因,我不断收到此错误。
Receiver (<MenuViewController: 0x1cd7cf50>) has no segue with identifier 'showNews''
以下是我的故事板的截图。
有人可以帮我解决这个恼人的问题吗?
亲切的问候
答案 0 :(得分: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];
之后,您必须使用它来设置这些属性,可能是从指定的初始化程序中提取设置代码并将其放入单独的方法中。