Ios 如何在uitableview中为一个按钮提供两个操作?
我一直在四处寻找解决办法,但似乎找不到一个适合我的办法。如何在iOS目标C中为一个UIButton执行两个操作 我的应用程序包含“登录用户”和“来宾用户”Ios 如何在uitableview中为一个按钮提供两个操作?,ios,objective-c,uitableview,uibutton,uiactionsheet,Ios,Objective C,Uitableview,Uibutton,Uiactionsheet,我一直在四处寻找解决办法,但似乎找不到一个适合我的办法。如何在iOS目标C中为一个UIButton执行两个操作 我的应用程序包含“登录用户”和“来宾用户” 如果登录用户进入UITableView查询按钮,则导航到一个控制器 如果“来宾用户”出现在UITableView查询按钮中,则导航到另一个控制器 登录后,您将了解登录的用户类型。根据用户类型移动到相应的控制器。你真的不必为同一个按钮设置多个动作。单击按钮时,检查登录的用户类型,即来宾/登录,并按下相应的控制器。例如,对于tableview单
- 如果登录用户进入
查询按钮,则导航到一个控制器李>UITableView
- 如果“来宾用户”出现在
查询按钮中,则导航到另一个控制器UITableView
控制器
。你真的不必为同一个按钮设置多个动作。单击按钮时,检查登录的用户类型,即来宾/登录,并按下相应的控制器。例如,对于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;
}
您可以根据用户登录标志管理操作,而不是添加两个操作 i、 e如果用户是登录用户,则isLogin标志将为true,否则为false 为此,您可以使用以下用户默认值
[[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
}
}
你可以这样试试
- (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
}
}
- (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
}
}
你能展示一下你为了更好的理解所做的努力吗?试着设定一些布尔值。如果用户已登录,请将bool设置为yes。在按钮iAction中,检查bool值,如果为“是”,则导航到您想要的控制器如果为“否”,则它是来宾用户,以便您可以根据标记导航到buton的另一个controllerset标记打开VCif(appLoginType==AMGuestLogin){[projectListCell.InquireButton addTarget:self action:@selector(NavigateToInquire:)forControlEvents:UIControlEventTouchUpInside];}{[projectListCell.InquireButton addTarget:self action:@selector(Inquire:)forControlEvents:UIControlEventTouchUpInside];}像这样我试过了,但在调用NavigateToInquire方法时,我得到了Inquire方法,我早就解决了问题,由于工作量过大,我没有使用你的答案登录这里