我在通知回来后尝试更改按钮的标题,但它根本没有响应。我检查过它不是零并且检查了文本Im'分配,一切都很好。我创建了属性类型strong
而不是weak
,但没有成功。
- (void) setButtonTitleFromSelectedSearchResult:(NSNotification *)notif
{
[self popController];
self.sourceMapItem = [[notif userInfo] valueForKey:@"SelectedResult"];
NSLog(@"The Selected Result is: %@", self.sourceMapItem.name);
//Testing
NSLog(@"%@", self.fromButton); // check it's not nil
[self.fromButton setTitle:self.sourceMapItem.name];
}
答案 0 :(得分:3)
我使用最新的XCode 6.3及以下代码与我合作。
self.testBtn
与Storyboard及其WKInterfaceButton
我还附上了受影响结果的屏幕截图。
我在- (void)willActivate
- (void)willActivate {
[super willActivate];
[self.testBtn setTitle:@"Test"];
[self performSelector:@selector(justDelayed) withObject:nil afterDelay:5.0]
}
-(void)justDelayed
{
[self.testBtn setTitle:@"Testing completed...!!"];
}
答案 1 :(得分:2)
如果你正在使用IBOutlet作为属性 fromButton ,请确保它连接到故事板上的WKInteface,如下所示:
答案 2 :(得分:2)
我通过创建一个模型对象来解决这类问题,该模型对象的属性是() -> (Void)
类型的块(在swift中)。我创建模型对象,在块中设置我想要在完成时推动WKInterfaceController
执行的操作,最后将上下文中的模型对象传递给推送的WKInterfaceController
。推送的WKInterfaceController
将对模型对象的引用作为属性进行操作,并在完成所需操作并在func popController()
之后完成后调用它的完成块。
这对我来说非常适用于您所描述的模式以及删除详细控制器删除,网络调用,位置提取和其他任务上的行。
你可以看到我在这里谈论的内容:https://gist.github.com/jacobvanorder/9bf5ada8a7ce93317170