PO(NSStringFromSelector(self.editSettings.action));
[self.editSettings setCustomView:imageView]; //works if this is commented out but with bad image
PO(NSStringFromSelector(self.editSettings.action));
そのコードが生成する
2013-01-17 11:47:41.184 BadgerNew[29570:c07] NSStringFromSelector(self.editSettings.action): Setting:
2013-01-17 11:47:41.185 BadgerNew[29570:c07] NSStringFromSelector(self.editSettings.action): Setting:
したがって、セレクターは同じです。
ただし、[self.editSettings setCustomView:imageView]; の後。ボタンが押せなくなります。押しても何の効果もありません。
おそらくcustomViewがユーザーの操作を「吸収」すると思いました。
ただし、設定できませんimageView.userInteractionEnabled
。そのようなセレクターはありません。
私は何が欠けていますか?
それは問題ではないようです。コンソール印刷を追加しました。imageView userInteractionEnabled がデフォルトで false になっていることを示しています
UIImage * imageSetting= [UIImage imageNamed:@"setting-button"];
UIImageView * imageView = [[UIImageView alloc]initWithImage:imageSetting];
PO(NSStringFromSelector(self.editSettings.action));//Bar Button Item
self.editSettings.customView =imageView;
PO(NSStringFromSelector(self.editSettings.action));
PO(@(imageView.userInteractionEnabled));
PO(self.editSettings.customView);
PO(imageView);
imageView.userInteractionEnabled=false;
次に、Interface Builder (IB) ソリューションを完全に使用せずに試してみました。
UIImage * imageSetting= [UIImage imageNamed:@"setting-button"];
UIImageView * imageView = [[UIImageView alloc]initWithImage:imageSetting];
self.editSettings = [[UIBarButtonItem alloc]initWithCustomView:imageView];
self.editSettings.action = @selector(Setting:);
self.navigationItem.leftBarButtonItem = self.editSettings;
それでもうまくいきません。
customView は画像ではなくボタンである必要があると言う人がいます。さて、私は疑問に思います。