我正在关注使用SplitViewControllers
和协议的Stanford cs193p lesson 7
。 我正在做同样的教授正在做的事情(多次检查),但我一遍又一遍地得到这个错误。在'id <UISplitViewControllerDelegate>'对象上未找到属性'splitViewBarButtonItem''
我SplitViewBarButtonItemPresenter.h
#import <UIKit/UIKit.h>
@protocol SplitViewBarButtonItemPresenter <NSObject>
@property (nonatomic,strong) UIBarButtonItem *splitViewBarButtonItem;
@end
在我的主人CalculatorViewController.h
@interface CalculatorViewController : UIViewController <UISplitViewControllerDelegate>
在CalculatorViewController.m
-(id <UISplitViewControllerDelegate>)splitViewBarButtonItemPresenter
{
id detailVC = [self.splitViewController.viewControllers lastObject];
if(![detailVC conformsToProtocol:@protocol(SplitViewBarButtonItemPresenter)]){
detailVC = nil;
}
return detailVC;
}
- (void)awakeFromNib
{
[super awakeFromNib];
super.splitViewController.delegate = self;
}
定义的协议,后来,当我尝试设置barButtonItem
-(void)splitViewController:(UISplitViewController *)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)pc
{
barButtonItem.title = self.title;
[self splitViewBarButtonItemPresenter].splitViewBarButtonItem = barButtonItem;
}
我一直在标题中出现错误,好像我没有正确地声明协议和委托。我真的不知道在哪里寻找错误,因为我跟随斯坦福大学的教授一行一行地逐字逐句跟踪。 的错误是在这一行,具体为:
[self splitViewBarButtonItemPresenter].splitViewBarButtonItem = barButtonItem;
有关错误的更多详细信息请 – jimpic
当我尝试使用点符号来设置splitViewBarButtonItem –