gpt4 book ai didi

ios - 如何访问 Apple WatchKit WKInterfaceController 列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:04 26 4
gpt4 key购买 nike

在我的 watch 扩展代码中,我试图阻止在某些情况下显示第二个界面 Controller 。我的解决方案需要查看事件 View Controller 列表。

有谁知道如何获得所有事件接口(interface) Controller 的列表?您可以在 iOS 中使用 self.navigationController.viewControllers 执行此操作,但我在 WatchKit 中找不到导航 Controller 。

我已经通读了 Apple Watch Programming Guide很多次,但他们没有解决这个问题。由于您可以推送和弹出接口(interface) Controller ,因此操作系统必须保留一个列表,但我怀疑没有对该列表的编程访问权限。

最佳答案

您可以尝试通过创建自己的列表来解决它,并将其保存在 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 中,您在激活/停用 Controller 时添加和删除此列表:

- (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];
}

关于ios - 如何访问 Apple WatchKit WKInterfaceController 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29803000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com