如何在 uitableview 中为一个按钮提供两个操作?
how to give two actions for one button in uitableview?
我一直在四处寻找解决方案,但似乎找不到适合我的解决方案。如何在 iOS Objective C 中为一个 UIButton 执行两个操作。
我的应用包含 "login user" 和 "guest user"。
- 如果登录用户进入
UITableView
查询按钮导航到一个控制器。
- 如果 "guest user" 出现
UITableView
查询按钮导航到另一个控制器
在 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
}
}
我一直在四处寻找解决方案,但似乎找不到适合我的解决方案。如何在 iOS Objective C 中为一个 UIButton 执行两个操作。
我的应用包含 "login user" 和 "guest user"。
- 如果登录用户进入
UITableView
查询按钮导航到一个控制器。 - 如果 "guest user" 出现
UITableView
查询按钮导航到另一个控制器
在 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
}
}