3

我正在尝试动态创建一个视图控制器并设置它的视图和标题栏。事情似乎工作得很好。但是当我尝试设置导航栏的左键或右键时,它们只是不显示。我究竟做错了什么?

   UIWebView *tempWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
    [tempWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"someurl"]]];

    UIViewController* tempViewController = [[UIViewController alloc]init];
    tempViewController.view = tempWebView;

    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:tempViewController];

    UIBarButtonItem* closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleBordered target:self action:nil];
    navigationController.navigationItem.leftBarButtonItem = closeButton;


    [self presentViewController:navigationController animated:YES completion:nil];
4

2 回答 2

8

改变

navigationController.navigationItem.leftBarButtonItem = closeButton;

tempViewController.navigationItem.leftBarButtonItem = closeButton;

navigationItem外观由导航控制器呈现的视图处理,因此如果您将其设置在 上而UINavigationController不是 上rootViewController,当您第一次推送它时,它会被覆盖。

于 2013-03-28T18:30:11.700 回答
1

您需要访问 tempViewController 的 navigationItem,而不是 navigationController。

于 2013-03-28T18:28:22.537 回答