主VC中的工具栏和Modal VC中的工具栏不会显示相同的按钮

时间:2013-09-10 13:19:38

标签: ios ipad xamarin.ios modal-dialog toolbar

我遇到了一个奇怪的问题,我在互联网上找不到任何东西。我有一个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显示。为什么用一个工具栏做某事会影响另一个工具栏?

1 个答案:

答案 0 :(得分:1)

好吧,如果你将相同的按钮添加到模态VC中,当你将按钮添加到第二个工具栏时,它会在某个时候调用AddSubView,这将调用{{1在实际将按钮添加到工具栏之前。

RemoveFromSuperView可能只有一个 SuperView。