語境@selector未燒製的UIBarButtonItem
- 的應用程序使用一個UINavigationController範式
- 我有一個子類 '的UIViewController' 稱爲類:QuestionViewController。
- 我再有一個子類的viewController QuestionViewController叫:QuestionMultipleChoiceViewController
- 在QuestionViewController我有一個公共的方法,叫做:returnBarButtonItems返回一個NSArray
- 在QuestionMultipleChoiceViewController我的self.toolbarItems屬性設置爲通過returnBarButtonItems返回
- 的操作是在超類陣列 - QuestionViewController
代碼
QuestionViewController:
-(NSArray*)returnBarButtonItems
{
self.facebookItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"FacebookIcon.png"] style:UIBarButtonItemStylePlain target:nil action:@selector(facebookAction:)];
self.leftarrow = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"LeftArrowIcon.png"] style:UIBarButtonItemStylePlain target:nil action:@selector(leftAction:)];
self.rightarrow = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"RightArrowIcon.png"] style:UIBarButtonItemStylePlain target:nil action:@selector(rightAction:)];
self.calcItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"CalculatorIcon.png"] style:UIBarButtonItemStylePlain target:nil action:@selector(calculatorAction:)];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
self.items = [NSArray arrayWithObjects:self.facebookItem, flexibleSpace, self.leftarrow, flexibleSpace,flexibleSpace,flexibleSpace,flexibleSpace, self.rightarrow,flexibleSpace, self.calcItem, nil];
return self.items;
}
QuestionMultipleChoiceViewController:
self.toolbarItems = [self returnBarButtonItems];
問題
UIBarButtons被正確設置並顯示,但操作不會在按下時調用。
問題是,你正在分配'nil'作爲目標,這意味着這些操作被髮送到'無' – tkanzakic 2013-04-25 20:25:33
明白了。如果我不使用超類,它如何工作? – drc 2013-04-25 20:36:40
爲什麼不添加這個作爲答案? – drc 2013-04-25 20:37:42