如何在 uitableview 中为一个按钮提供两个操作?

how to give two actions for one button in uitableview?

我一直在四处寻找解决方案,但似乎找不到适合我的解决方案。如何在 iOS Objective C 中为一个 UIButton 执行两个操作。

我的应用包含 "login user" 和 "guest user"。

在 post 登录时,您可以了解登录用户的类型。根据用户类型移动到相应的 controller。您真的不必为同一个按钮设置多个操作。单击按钮时,检查登录的用户类型,即 guest/login 并推送到相应的控制器。

例如。对于 tableview 单元格中的每个按钮,您可以在按钮上设置 @selector()

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    .
    //do stuff
    .

    [cell.buttonSave addTarget:self action:@selector(btnSaveTap:) forControlEvents:UIControlEventTouchUpInside];

  if ([user isequaltostring:login user])
    cell.buttonSave.tag = <tagNumber>
   else
     cell.buttonSave.tag = <anothertagNumber>

    //do stuff
    return cell;
}

添加你可以像这样实现它的动作方法

- (void)btnSaveTap:(UIButton *)sender {

    //here you can check tag number for desired action

   if(sender.tag ==tagNumber) // 
 {
  // Navigate to login user
 }
else
{
 // Navigate to Guest user
 }
}

您可以根据用户登录标志管理操作,而不是添加两个操作。

即,如果用户是登录用户,则 isLogin 标志将为真,否则将为假。

为此,您可以使用用户默认值,如下所示。

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isLogin"];//here yes if normal user and no if guest user.
[[NSUserDefaults standardUserDefaults] synchronize];

点击按钮即可维护

- (void)btnclick:(UIButton *)sender {

  //here you can check login flag

 if([[NSUserDefaults standardUserDefaults] boolForKey:@"isLogin"]){
    // Navigate to login user
   }
   else{
    // Navigate to Guest user
   }
}

你可以这样试试

- (IBAction)navigateToEnquire:(id)sender {

    NSLog(@"Button pressed: %@", [sender currentTitle]);    

   if ([[sender currentTitle] isEqualToString: @"login user"]) {

        // do something

   } else if ([[sender currentTitle] isEqualToString: @"guest user"]) {

     // do something

   }

}