Я хочу передать NSInteger из tableViewController (HistoryTableViewController) в другой viewController (InformationViewController), но, по-видимому, он не отвечает на мой селектор.Делегат не отвечает на селектор
HistoryTableViewController.h:
@class HistoryTableViewController;
@protocol HistoryTableViewControllerDelegate <NSObject>
- (void)addItemViewController:(HistoryTableViewController *)controller passItem:(NSInteger *)rowNum;
@end
@interface HistoryTableViewController : UITableViewController {
NSInteger row;
}
@property (nonatomic, weak) id <HistoryTableViewControllerDelegate> delegate;
@end
HistoryTableViewController.h
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
row = [self.tableView indexPathForSelectedRow].row;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"informationSegue"]) {
if([self.delegate respondsToSelector:@selector(addItemViewController:passItem:)]){
[self.delegate addItemViewController:self passItem:&(row)];
}
}
}
InformationViewController.h:
@interface InformationViewController : UIViewController <HistoryTableViewControllerDelegate>
@property (nonatomic, assign) NSInteger rowIn;
InformationViewController.m
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"informationSegue"]) {
HistoryTableViewController *historyvc = segue.destinationViewController;
historyvc.delegate = self;
}
}
- (void) addItemViewController:(HistoryTableViewController *)controller passItem:(NSInteger *)rowNum {
rowIn = *rowNum;
}
«informationSegue» - это мой segueIdentifier для перехода от HistoryTableViewController к InformationViewController.
Какой VC перешел на другой? Похоже, вы ожидаете, что 'prepareForSegue: отправитель:' целевого VC будет запущен, когда он будет перенаправлен. – Avi
Кроме того, почему вы передаете указатель на переменную экземпляра, особенно из 'int'? Почему бы просто не пройти «int»? – Avi
Я перехожу из HistoryViewController в InformationViewController. Извините, я не понял ваш второй вопрос. –