Rus*_*ell 13 objective-c uinavigationcontroller uibarbuttonitem rightbarbuttonitem uinavigationitem
我在显示导航栏的rightBarButtonItem时遇到问题 - 我试图在Application Delegate中以编程方式创建它,我的UINavigationController已经设置好了.
代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
RSCListViewController *list = [[RSCListViewController alloc] initWithStyle:UITableViewStylePlain];
self.navController = [[UINavigationController alloc] initWithRootViewController:list];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"+"
style:UIBarButtonItemStylePlain
target:list
action:@selector(addPressed:)];
self.navController.navigationItem.rightBarButtonItem = barButton;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[DatabaseManager openDatabase];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
运行应用程序时,导航栏上不会显示任何按钮项.
我不确定我是否遗漏了一些明显的东西 - 我尝试使用相关的Stack Overflow线程纠正问题并没有取得任何成功.
任何帮助赞赏.
alb*_*amg 36
您需要将条形按钮项目附加到自定义视图控制器,而不是导航控制器.从更新导航栏:
此外,导航控制器对象使用与导航堆栈上的视图控制器相关联的导航项(UINavigationItem类的实例)动态地构建导航栏的内容.要更改导航栏的内容,必须配置自定义视图控制器的导航项.
(......)
导航控制器更新导航栏的右侧,如下所示:
如果新的顶级视图控制器具有自定义右侧栏按钮项,则显示该项.要指定自定义右侧栏按钮项,请设置视图控制器导航项的rightBarButtonItem属性.
如果未指定自定义右侧栏按钮项,则导航栏将在栏的右侧不显示任何内容.
因此,替换:
self.navController.navigationItem.rightBarButtonItem = barButton;
Run Code Online (Sandbox Code Playgroud)
有:
list.navigationItem.rightBarButtonItem = barButton;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14258 次 |
| 最近记录: |