我遇到了一个奇怪的问题,我在互联网上找不到任何东西。我有一个UIViewController,底部显示一个工具栏,里面有一个自定义按钮。该按钮添加如..
List<UIBarButtonItem> items = new List<UIBarButtonItem>();
UIButton _helpButton = new UIButton();
//....
// code to create our custom button with background
// .....
UIBarButtonItem helpBarButton = new UIBarButtonItem(_helpButton);
items.Add(helpBarButton);
在展示我们的VC时,我们会显示工具栏,一切看起来都很棒。在VC上,我们有一个按钮可以打开另一个VC(作为另一个UINavigationController的根视图)作为模态FormSheet。在ViewDidAppear
中,我们还将工具栏设置为可见,这将显示相同的帮助按钮,这也很有效。
一旦显示模态VC,由于它不是全屏,您仍然可以在后台看到其他VC。背景VC上的工具栏不再显示帮助按钮(工具栏仍在显示)。没有代码可以删除或隐藏帮助按钮,所以我不确定它发生了什么。
由于我真的不知道如何在objective-c中设置这个场景,我不确定这是iOS问题,Xamarin.iOS问题,还是我对工具栏的理解问题。< / p>
另外,如果我没有在模态VC中显示工具栏,则后台VC的工具栏会保留帮助按钮。这是我不明白的,因为后台VC由一个UINavigationController显示,而模态VC由不同的UINavigationController显示。为什么用一个工具栏做某事会影响另一个工具栏?
答案 0 :(得分:1)
好吧,如果你将相同的按钮添加到模态VC中,当你将按钮添加到第二个工具栏时,它会在某个时候调用AddSubView
,这将调用{{1在实际将按钮添加到工具栏之前。
RemoveFromSuperView
可能只有一个 SuperView。