【问题标题】:How can I get UINavigationbar items to show when the view is pushed如何在推送视图时显示 UINavigationbar 项目
【发布时间】:2012-09-03 20:24:19
【问题描述】:

在我的 appdelagate 中有这个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];


    MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPhone" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    self.window.rootViewController = self.navigationController;

[self.window makeKeyAndVisible];
return YES;
}

我有一个 masterview 和 detailview,masterview 是一个表格,当我在 masterview 中单击一行时会推送到 detailview,但是我添加到 detailview 的 barbutton 项目不会显示。它看起来像这样:

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPhone" bundle:nil];

[self.navigationController pushViewController: detailViewController animated:YES];

【问题讨论】:

  • 您能告诉我们您是如何添加栏按钮项的吗?
  • 您说“我添加到详细视图的条形按钮项目不会显示”。你用什么代码来添加它们?
  • 考虑显而易见的事情,但是:确保它们没有隐藏在 ib 中;您的控制器中是否有任何逻辑可以操作工具栏或其按钮,如果有,这些元素是否在 xib/storyboard 中正确连接?我认为 viewWillAppear 中的一些简单调试会提供一些线索

标签: iphone ios xcode navbar


【解决方案1】:

我将提供您正在执行的操作的替代方案,因为我不确定您的商品未展示的原因。我的猜测是 detailViewController 中的导航栏在您推送视图控制器后被它的干净副本覆盖。

-viewDidLoad()方法中,在detailViewController.m中手动添加UIBarButtonItem。

// 创建一个标准的保存按钮 UIBarButtonItem *saveButton = [[UIBarButtonItem alloc]

              initWithBarButtonSystemItem:UIBarButtonSystemItemSave
              target:self
              action:@selector(saveAction:)];

saveButton.style = UIBarButtonItemStyleBordered;  
[buttons addObject:saveButton];  
[saveButton release];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多