我的应用程序每个屏幕的工具栏(通过 Storyboard制作)中都有一个“注销”按钮。无论点击哪个页面,我都希望它执行相同的操作。
有没有办法让所有这些按钮做同样的事情,而不必在每个 View Controller 中创建相同的 IBAction
方法(我有一堆不同类型的 View Controller )?
最佳答案
一种解决方案是在所有工具栏上共享该按钮。这既丑陋又困难。我的偏好是将注销逻辑封装在它自己的类中,然后从所有按钮调用它:
#import "AccountManager.h"
@implementation AccountManager
+ (id)sharedManager
{
static AccountManager *sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedManager = [[AccountManager alloc] init];
});
return sharedManager;
}
- (void)logout
{
// logout logic
}
@end
然后在你的 View Controller 中你可以拥有
#import "AccountManager.h"
- (IBAction)didSelectLogout:(id)sender
{
[[AccountManager sharedManager] logout];
}
在这种情况下,您仍然在每个 Controller 中都有一个操作,但您的注销逻辑不会分布在整个应用程序中。
关于ios - 如何让一个按钮在 iOS 的每个屏幕上做同样的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10656294/