我有一个方法,当用户单击导航栏中的按钮时,我想调用它。如果我像这样添加按钮,那么我的方法会被调用:
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"myEditButton"]
style:UIBarButtonItemStyleBordered
target:self
action: @selector(enterEditMode:)];
editButton.title = @"Edit";
[self.navigationItem setRightBarButtonItem:editButton animated:YES];
当用户单击按钮时,我的 enterEditMode: 方法被调用。
然而,使用此代码,结果看起来像附件中的 - 没有文本,但更糟糕的是我的图像位于蓝色按钮的顶部。我不能使用标准系统编辑按钮,因为要求它是黑色而不是蓝色,而且 AFAIA 我无法将标准编辑栏按钮的颜色更改为黑色?
因此,在 xib 中,我创建了一个父 UIView,其中包含一个 UIImageView,它是按钮图像和文本的 UILabel。然后我像这样创建按钮项:
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithCustomView:self.editButtonParentView];
[editButton setTarget:self];
[editButton setAction: @selector(enterEditMode:)];
editButton.style = UIBarButtonItemStyleBordered;
editButton.target = self;
self.editButtonLabel.text = @"Edit"
[self.navigationItem setRightBarButtonItem:editButton animated:YES];
其中 editButtonParentView 是笔尖中部分视图的 IBOutlet。
这显示得很完美,但是问题是当用户点击它时 enterEditMode: 不会被调用。
为什么它不被调用?
谢谢