你可以嘗試讓自己的列表來解決它,並把它保存在NSUserDefaults
例如:
你應該清楚它在你的初始ViewController
的初始化:
- (instancetype)init {
self = [super init];
// get user defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// empty the array at application launch
[defaults setObject:[[NSMutableArray alloc] init] forKey:@"activeVCs"];
[defaults synchronize];
return self;
}
然後在所有其他ViewController
,添加和刪除這份名單上激活/停用控制器:
- (void)willActivate {
// get list of VCs
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *listOfVCs = [defaults objectForKey:@"activeVCs"];
[listOfVCs addObject:@"VC1"];
// save array and sync
[defaults setObject:listOfVCs forKey:@"activeVCs"];
[defaults synchronize];
[super willActivate];
}
- (void)didDeactivate {
// get list of VCs
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *listOfVCs = [defaults objectForKey:@"activeVCs"];
// remove VC if exists
if ([listOfVCs containsObject:@"VC1"])
[listOfVCs removeObject:@"VC1"];
// save array and sync
[defaults setObject:listOfVCs forKey:@"activeVCs"];
[defaults synchronize];
[super didDeactivate];
}