我想通過向rightBarButtonItem添加一個自定義按鈕來自定義導航欄。創建一個非常簡單。將操作和目標添加到自定義導航BarButtonItem?
UIImage *myImage = [UIImage imageNamed:@"menu-icon.png"];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setFrame:CGRectMake(0, 0, myImage.size.width, myImage.size.height)];
[myButton setBackgroundImage:myImage forState:UIControlStateNormal];
UIBarButtonItem *myButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myButton];
[navItem setLeftBarButtonItem:myButtonItem animated:YES];
看起來不錯,除了現在我無法設置目標或操作屬性。下面的代碼什麼也不做:
myButtonItem.target = myTarget;
myButtonItem.action = @selector(myButtonAction);
我發現它不工作的原因是因爲我與-initWithCustomView初始化的UIBarButtonItem。蘋果文檔說:
該方法創建的條形按鈕項目不會響應用戶交互調用其目標的動作方法。相反,酒吧按鈕項目期望指定的自定義視圖來處理任何用戶交互並提供適當的響應。
我有點困惑,究竟蘋果是什麼意思。我應該創建一個自定義控件或什麼?我還沒有真正做到這一點,我不知道從哪裏開始。
有沒有人有任何建議如何做到這一點或另一種方式來設置自定義導航欄按鈕?
回答-------------------------------------------- --------------
剛把這個方法添加到UIButton的:
[myButton addTarget:myTarget action:@selector(myButtonAction) forControlEvents:UIControlEventTouchUpInside];
謝謝,沒有意識到它是那麼簡單。 – DJSK