所以这是我的 WSWordlistTableView.h:
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface WSWordlistTableView : UITableView {
}
@property (nonatomic, assign) id <UITableViewDataSource> datasource;
@property (nonatomic, assign) id <UITableViewDelegate> delegate;
- (id)initWithFrame:(CGRect)frame;
@end
如您所见,有delegate
和datasource
属性。
我的 WSWordlistTableViewController.h:
#import <UIKit/UIKit.h>
#import "WSWordlistManager.h"
#import "WSUserManager.h"
@interface WSWordlistTableViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
@end
所以,我正在用这个在主 VC 上滑动的表构建一个滑动抽屉视图。这是主 VC 中创建视图和控制器然后将它们滑动到屏幕上的方法:
- (IBAction)slideWordlistView:(id)sender {
if(!self.wordlistTableView ) {
CGRect frame = CGRectMake(30, 340, 100, 310);
self.wordlistTableView = [[WSWordlistTableView alloc] initWithFrame:frame];
}
[self.view bringSubviewToFront:self.wordlistTableView];
if(!self.wordlistTableViewController) {
self.wordlistTableViewController = [[WSWordlistTableViewController alloc] init];
}
self.wordlistTableViewController.view.frame = self.wordlistTableView.bounds;
self.wordlistTableViewController.view.autoresizingMask = self.wordlistTableView.autoresizingMask;
[self addChildViewController:self.wordlistTableViewController];
[self.wordlistTableView addSubview:self.wordlistTableViewController.view];
[self.wordlistTableViewController didMoveToParentViewController:self];
// *** THESE LINES THROW THE ERRORS
self.wordlistTableView.delegate = self.wordlistTableViewController;
self.wordlistTableView.datasource = self.wordlistTableViewController;
CGFloat newX = kVisibleX;
NSLog(@"newX = %f", newX);
[UIView animateWithDuration: .25
animations:
^{
CGRect drawerFrame = self.wordlistTableView.frame;
drawerFrame.origin.x = newX;
self.wordlistTableView.frame = drawerFrame;
}];
}
self.wordlistTableView.delegate = self.wordlistTableViewController;
self.wordlistTableView.datasource = self.wordlistTableViewController;
这两行都抛出错误,说他们在 'WSWordlistTableView*' 上找不到属性 'delegate' 和 'datasource'。他们都在那里。我不明白。