Ios 按钮后单击委派:(ViewController)没有标识符为';按键秒步';
我真的快疯了。 但让我先向你解释一下我的小项目: 我有一个自定义的Ios 按钮后单击委派:(ViewController)没有标识符为';按键秒步';,ios,objective-c,segue,uistoryboardsegue,Ios,Objective C,Segue,Uistoryboardsegue,我真的快疯了。 但让我先向你解释一下我的小项目: 我有一个自定义的UITableViewTDStartTableView。 在这里,我还实现了一些用于呈现表的方法。没问题。 在一个TableViewCell的内部有一个按钮。 单击该按钮时,会触发此方法: - (void)triggerPush { [self.delegate pushNextView]; } TDStartTableView的.h文件中指定了self.delegate,如下所示: @property (nonatom
UITableView
TDStartTableView
。
在这里,我还实现了一些用于呈现表的方法。没问题。
在一个TableViewCell
的内部有一个按钮。
单击该按钮时,会触发此方法:
- (void)triggerPush {
[self.delegate pushNextView];
}
TDStartTableView
的.h文件中指定了self.delegate
,如下所示:
@property (nonatomic, weak) id<TDStartTableViewDelegate> delegate;
因此,本质上我想做的是:创建一个带有按钮等的自定义UITableView
,然后从实现该UITableView
和协议的ViewController
监听事件
因此,由于协议强制我实现pushNextView
此方法在我的UIViewController中:
- (void)pushNextView {
NSLog(@"This works");
}
到目前为止,一切正常,没有问题强>
但现在是棘手的部分
我创建了一个从我的UIViewController
到新ViewController的序列。我通过一个segue连接它们,并适当地命名segue<代码>按键秒步。
现在有人会想,当我将pushNextView
的实现更改为
- (void)pushNextView {
[self performSegueWithIdentifier:@"pushToSecondStep" sender:self];
}
它起作用了。但我得到的是:
'Receiver()没有标识符为“pushToSecondStep”的序列。
请帮帮我,我快疯了:D问题是,我重写了
TDStartTableView
的构造函数
正确的形式是实现所有构造函数,以便Objective-C可以自己实例化它们:
- (id) initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
return self;
}
此外,在实现自定义的UITableView
小部件时,不应使用UITableViewController
,而应使用UIViewController
另外,您自己也不需要初始化自定义的UITableView
,Storyboard已经为您进行了初始化,因此如果您想为它设置特殊变量,如numberOfRows
,那么只需声明一个属性,然后通过setter方法在外部进行设置,并调用[tableView reloadData]
另外,感谢您在聊天中帮助我:)我还检查了初始化点的内存地址和异常中的内存地址,它们都是相同的。。。
- (id) initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
return self;
}