Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 按钮后单击委派:(ViewController)没有标识符为';按键秒步';_Ios_Objective C_Segue_Uistoryboardsegue - Fatal编程技术网

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;
}