0

我想用 json 标题设置导航栏的标题。

我试过了:

[self setTitle:[self.defineJsonDataforSurveyQuestion objectForKey:@"SurveyName"]];
[self.navigationController setTitle:[self.defineJsonDataforSurveyQuestion objectForKey:@"SurveyName"]];

如果手动设置标题,它可以工作,但我对json一无所知。我知道我得到了正确的值并正确解析了 json,因为它在 NSLog 中显示正确。

我没有错误,标题只是空白。

2013-05-25 13:37:26.863 [1657:907] Survey name for title:Filter Inspection

请帮忙。

4

1 回答 1

3

objectForKey:返回一个对象,它可以是一个 NSString,但它不是必须的。当您使用 NSLog 打印它时,NSLog 会在对象上调用“描述”,这样您仍然可以在日志中得到一些有意义的东西,但是 setTitle: 当然不会这样做,它需要一个 NSString 对象。

id title = [self.defineJsonDataforSurveyQuestion objectForKey:@"SurveyName"];
if ([[title class] isKindOfClass:[NSString class]]) {

  [self.navigationController.navigationBar.topItem  setTitle:title];

} else {
  NSLog(@"title is not a string, but %@!", [title class]);
}
于 2013-05-25T11:50:05.013 回答