【问题标题】:BarButtonItem does not show upBarButtonItem 不显示
【发布时间】:2011-08-21 19:58:35
【问题描述】:

我创建了一个新的基于窗口的应用程序,以及一个子类 UIViewController 的 RootViewController。我在 AppDelegate 中创建了一个 UINavigationController,当我将 UINavigationController 的视图添加到窗口时,我确实看到顶部的导航栏。但是,我似乎无法向导航栏添加按钮 - 没有编译错误,但按钮(和标题)没有显示。代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    RootViewController * rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];

    UIBarButtonItem *next = [[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStyleDone target:nil action:nil];
    navigationController.title = @"Foo";

    navigationController.navigationItem.rightBarButtonItem = next;

    [self.window addSubview:navigationController.view];

    // Override point for customization after application launch.
    [self.window makeKeyAndVisible];
    return YES;


}

我做错了什么?

【问题讨论】:

  • 您是否尝试在 UIViewController 子类和 rightBarButton 中设置标题?在我看来,-viewDidLoad 似乎是一个合适的地方。还要确保 UINavigationController 在您的 UIViewController 子类的 -viewDidLoad 内不为零。

标签: objective-c xcode uinavigationcontroller uibarbuttonitem


【解决方案1】:

改变这个:

navigationController.navigationItem.rightBarButtonItem = next;

到这里:

rootViewController.navigationItem.rightBarButtonItem = next;

【讨论】:

    【解决方案2】:

    可能是 style:UIBarButtonItemStyleDone 仅用于编辑模式是 YES。如果在 Root 控制器或子视图控制器中,您可以尝试调用 self.editing = YES,但在 AppDelegate 中则不能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多