【问题标题】:How can I determine which of two buttons is pressed by the user in the ABUnknownPersonViewController?如何确定用户在 ABUnknownPersonViewController 中按下了两个按钮中的哪一个?
【发布时间】:2012-09-17 05:16:40
【问题描述】:
我有一个按钮,如果用户按下我会显示ABUnknownPersonViewController。现在的问题是有两个选项创建新联系人和添加到现有联系人。如何确定选择了哪些选项?
我需要知道这一点,因为在我的应用中,我在另一部分显示我的联系人。有时它会导致我的应用程序因错误而崩溃:
不应尝试显示多个“添加到现有联系人”人员选择器
我该如何解决这个问题?
【问题讨论】:
标签:
iphone
objective-c
xcode
uibutton
【解决方案1】:
为按钮分配标签值并检查点击按钮的标签。根据标签放置条件并显示您的观点。
- (IBAction)contactsEdit_New:(id)sender
{
if ([addExitingBtn tag]==0)
{
// load ur view for exiting
}
else // here you can add if condition if required
{
// load view for creating new
}
}
希望有帮助。
【解决方案2】:
我猜你有 2 个 UIButtons?
给他们每个人一个标签,并指出他们使用一种方法。如果您使用 IB,只需 CTRL 拖动到您的代码(.m 文件)。
像这样的:
- (IBAction)buttonPressed:(UIButton *)sender {
switch (sender.tag) {
case 0:
// load create controller
break;
case 1:
// load add controller
break;
default:
break;
}
}
您也可以尝试比较按钮标题标签上的文本,但我认为这不是一个好的做法,因为按钮上的文本可能会在开发过程中发生变化。
- (IBAction)buttonPressed:(UIButton *)sender {
if([sender.titleLabel.text isEqualToString:@"create"]) {
// load create controller
} else if ([sender.titleLabel.text isEqualToString:@"add"]) {
// load add controller
}
}
您还可以为每个按钮创建 2 种不同的方法 :)
这样你就可以避免使用标签,因为两个按钮都有自己的方法来回答。
祝你好运。