我不确定我在这里缺少什么.我有一个自定义 UINavigationController
并且我正在尝试将持久性 UIBarButtonItem
添加到栏.
我在这里错过了什么?- 顺便说一句,我不想/不会使用 IB.
更新:目前这是我能得到的最接近的:
<上一页>-(void)viewDidLoad{self.navigationBar.barStyle = UIBarStyleBlack;UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 20, 320, 44)];navBar.barStyle = UIBarStyleBlack;UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"正在播放..."];[navBar pushNavigationItem:navItem 动画:NO];UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack:)];navItem.rightBarButtonItem = 编辑按钮;[self.view addSubview:navBar];;[导航项发布];[导航栏发布];[超级视图DidLoad];}很糟糕,我必须将整个导航栏添加到已经有导航栏的 UINavigationController
....如果我尝试使用现有的,我会收到此错误:
....真的吗???
navigationItem
不能设置在 UINavigationController
实例上,而是设置在 的视图控制器上视图
显示在导航控制器内部".
如果您的控制器本身被推入另一个导航控制器,则在导航控制器上设置 self.navigationItem
将起作用.
i am not sure what i am missing here. I Have a custom UINavigationController
and i am trying to add a persistant UIBarButtonItem
to the bar.
-(void)viewDidLoad { self.navigationBar.barStyle = UIBarStyleBlack; UIBarButtonItem *bbi = [[UIBarButtonItem alloc] initWithTitle:@"Nope..." style:UIBarButtonItemStyleBordered target:self action:@selector(goBack:)]; self.navigationItem.leftBarButtonItem =bbi; [bbi release]; } -(void)goBack:(id)sender { NSLog(@"go back now"); }
what am i missing here? - BTW, i do not want to/ will not use IB.
UPDATE: Currently this is the closest i can get:
-(void)viewDidLoad { self.navigationBar.barStyle = UIBarStyleBlack; UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 20, 320, 44)]; navBar.barStyle = UIBarStyleBlack; UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"Currently Playing..."]; [navBar pushNavigationItem:navItem animated:NO]; UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack:)]; navItem.rightBarButtonItem = editButton; [self.view addSubview:navBar]; [editButton release]; [navItem release]; [navBar release]; [super viewDidLoad]; }
It's terrible i have to add an entire navbar to a UINavigationController
that already has a navbar....if i try to use the existing, i get this error:
'NSInternalInconsistencyException', reason: 'Cannot call pushNavigationItem:animated: directly on a UINavigationBar managed by a controller.'
....really???
navigationItem
must not be set on the UINavigationController
instance but on the view controller of the view
which is displayed "inside" the navigation controller.
Setting self.navigationItem
on your navigation controller would work if your controller was itself pushed into another navigation controller.
这篇关于将 UIBarButtonItem 添加到 UINav..Controller的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!