WKInterface按钮不会更改标题

时间:2015-04-02 07:20:24

标签: ios title watchkit wkinterfaceobject

我在通知回来后尝试更改按钮的标题,但它根本没有响应。我检查过它不是零并且检查了文本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];
}

3 个答案:

答案 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...!!"];
}

enter image description here

enter image description here

答案 1 :(得分:2)

如果你正在使用IBOutlet作为属性 fromButton ,请确保它连接到故事板上的WKInteface,如下所示:

IBOutlet

答案 2 :(得分:2)

我通过创建一个模型对象来解决这类问题,该模型对象的属性是() -> (Void)类型的块(在swift中)。我创建模型对象,在块中设置我想要在完成时推动WKInterfaceController执行的操作,最后将上下文中的模型对象传递给推送的WKInterfaceController。推送的WKInterfaceController将对模型对象的引用作为属性进行操作,并在完成所需操作并在func popController()之后完成后调用它的完成块。

这对我来说非常适用于您所描述的模式以及删除详细控制器删除,网络调用,位置提取和其他任务上的行。

你可以看到我在这里谈论的内容:https://gist.github.com/jacobvanorder/9bf5ada8a7ce93317170