Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIToolbar:setItems和UINavigationController setToolbarItems_Iphone_Cocoa Touch_Ipad - Fatal编程技术网

Iphone UIToolbar:setItems和UINavigationController setToolbarItems

Iphone UIToolbar:setItems和UINavigationController setToolbarItems,iphone,cocoa-touch,ipad,Iphone,Cocoa Touch,Ipad,我得到以下信息: @interface A : UIViewController { } @property (nonatomic, assign) UIToolbar *toolBar; @end 在这里,“toolBar”属性可以从外部设置为指向外部创建的UIToolbar,也可以指向navigationController工具栏 我想将工具栏项目独立于切换工具栏“工具栏”点设置为。 我尝试了以下方法但没有成功: NSMutableArray *buttons = ...

我得到以下信息:

@interface A : UIViewController {
}

@property (nonatomic, assign) UIToolbar *toolBar;
@end
在这里,“toolBar”属性可以从外部设置为指向外部创建的UIToolbar,也可以指向navigationController工具栏

我想将工具栏项目独立于切换工具栏“工具栏”点设置为。 我尝试了以下方法但没有成功:

    NSMutableArray *buttons = ...
    ...
    UIBarButtonItem *item = ...
    [buttons addObject:item];
    ...
//I know this are the same but...
    [self.toolBar setItems:buttons];
    self.toolBar.items = buttons;

有什么想法吗?

您可能遇到了这个问题,因为至少在涉及
UINavigationController
的情况下,工具栏项将从
UIViewControllers
中获取,该控件通过其
toolbarItems
属性推送到堆栈上

评论后编辑

我想说的是,你不能这样做:

self.toolBar = self.navigationController.toolbar;
self.toolBar.items = buttons;
当视图控制器位于UINavigationController内时,必须执行以下操作:

self.toolbarItems = buttons; // OR [self setToolbarItems:buttons animated:YES];

您可能会遇到此问题,因为至少在涉及
UINavigationController
的情况下,工具栏项将从
UIViewControllers
获取,该控件通过其
toolbarItems
属性推送到堆栈上

评论后编辑

我想说的是,你不能这样做:

self.toolBar = self.navigationController.toolbar;
self.toolBar.items = buttons;
当视图控制器位于UINavigationController内时,必须执行以下操作:

self.toolbarItems = buttons; // OR [self setToolbarItems:buttons animated:YES];

[self.navigationController.visibleViewController设置工具栏项目:@[button1,button2,button3]


如果在
visibleViewController
上设置
ToolbarItems
[self.navigationController.visibleViewController设置ToolbarItems:@[button1,button2,button3]


如果在
visibleViewController

上设置
ToolbarItems
,则似乎可以工作,但如果设置,则为:“self.toolBar=self.navigationController.toolBar”。如何管理工具栏项目?编辑后,我在问题中发布的调用不起作用:没错,通过UIToolbar引用设置UINavigationController工具栏的项目不起作用。。。我想知道为什么……但如果我这样做了:“self.toolBar=self.navigationController.toolBar”。如何管理工具栏项目?编辑后,我在问题中发布的调用不起作用:没错,通过UIToolbar引用设置UINavigationController工具栏的项目不起作用。。。我想知道为什么……这对我有帮助!为什么方法也在
UINavigationController
上?为什么我们需要
visibleViewController
上的方法?这对我很有帮助!为什么该方法也在
UINavigationController
上,为什么我们需要在
visibleViewController
上使用该方法?