我正在關注使用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 –