我试图弄清楚如何在LocationViewController和SetScoringTableViewController中获得委托,并在GameDetailsTableViewController中实现它们两者。 LocationViewControllerDelegate已经在工作,但是当我添加新的SetScoringTableViewController时,程序出现错误。
LocationViewController.h
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
SetScoringTableViewController.h
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
GameDetailsTableViewController.h
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
当我运行它时,我得到一个错误:“即使有,也找不到'SetScoringTableViewControllerDelegate'的协议声明。
我发现解决此问题的唯一方法是将“SetScoringTableViewController委托放入LocationView Controller中,但是我知道这是不对的。我们将不胜感激。
最佳答案
您遇到的是一个#import cycle
。打破导入循环
删除此导入行:
#import "GameDetailsTableViewController.h"
从
SetScoringTableViewController.h
中并将其放在.m
文件中。关于ios - 向新 Controller 添加新委托(delegate)的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32567763/