导航标题在iOS 7中没有变化

时间:2013-09-23 11:57:31

标签: iphone uinavigationbar title ios7

我之前在我的应用中完成了以下代码。它适用于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都能正常运行

2 个答案:

答案 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”; 祝你好运