我之前在我的应用中完成了以下代码。它适用于iOS7以外的所有iOS。我正在更改didSelectRow方法中的导航标题,但它没有在iOS 7中更改我的导航栏标题。我在didselectrow中运行时创建了一个新控制器,并在此行中为其标题nextController.title = [dataDict objectForKey: kNestedDataKey_title];
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {
NSLogDebug();
NSDictionary *dataDict = [self.data objectAtIndex: indexPath.row];
NSString *classNSString = [dataDict objectForKey: kNestedDataKey_class];
UIViewController *nextController = NULL;
nextController = [[NestedTableViewController alloc] initWithNibName: nil bundle: nil];
[self.navigationController pushViewController: nextController animated: YES];
((NestedTableViewController *) nextController).data = [dataDict objectForKey: kNestedDataKey_data];
nextController.title = [dataDict objectForKey: kNestedDataKey_title];
[nextController release];
}
注意:除iOS 7以外的所有iOS都能正常运行
答案 0 :(得分:1)
尝试此代码
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {
NSLogDebug();
NSDictionary *dataDict = [self.data objectAtIndex: indexPath.row];
NSString *classNSString = [dataDict objectForKey: kNestedDataKey_class];
NestedTableViewController *nextController = NULL;
nextController = [[NestedTableViewController alloc] initWithNibName: nil bundle: nil];
nextController.data = [dataDict objectForKey: kNestedDataKey_data];
nextController.title = [dataDict objectForKey: kNestedDataKey_title];
[self.navigationController pushViewController: nextController animated: YES];
[nextController release];
}
答案 1 :(得分:1)
我注意到iOS 7中存在一种奇怪的行为,该视图在内存中的加载时间较晚。因此,当您设置标题时,可能尚未创建标题标签。在设置tile之前使用此语句。这将确保您的视图已创建并在内存中。 [nextController视图]; 在这个设定标题之后 nextController.title = @“Title”; 祝你好运