ios - 标题未使用 json 设置。 objective-c

标签 ios objective-c json uinavigationcontroller

我想用 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

请帮忙。

最佳答案

objectForKey:返回一个对象,它可以是一个 NSString,但不一定是。当您使用 NSLog 打印它时,NSLog 会在对象上调用“describe”,这样您仍然会在日志中得到一些合理的信息,但是 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]);
}

关于ios - 标题未使用 json 设置。 objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749201/

相关文章:

ios - 使用 AutoLayout 时显示和隐藏 View

ios - 什么 iOS 版本支持 NSTimer 有效属性?

iOS - 为 Storyboard检测 iPad/iPhone 设备的逻辑

ios - 如何使用 SDWebImage 将图像从 JSON 加载到 UIImageView?

json - Ember 数据的 JSON 格式不正确

ios - ReactiveCocoa-映射方法错误

iphone - iPhone 应用程序中的谷歌云存储集成

ios - [非 A 型发布] : message sent to deallocated instance in UITableView

c# - C# 中的 Json 数组到自定义对象的映射

android - org.json.JSONException : Value of type java. lang.String 无法转换为 JSONObject