0

我遇到了一个奇怪的问题,我在互联网上找不到任何东西。我有一个 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 问题还是我对工具栏的理解的问题。

此外,如果我不在模态 VC 中显示工具栏,则后台 VC 的工具栏会保留帮助按钮。这是我不明白的,因为背景 VC 由一个 UINavigationController 显示,而模态 VC 由另一个 UINavigationController 显示。为什么用一个工具栏做某事会影响另一个工具栏?

4

1 回答 1

1

好吧,如果您将相同的按钮添加到模态 VC,当您将按钮添加到第二个工具栏时,它会在AddSubView某个时间调用,该按钮会RemoveFromSuperView在实际将按钮添加到工具栏之前调用。

UIViews 可能只有一个SuperView。

于 2013-09-10T18:46:39.643 回答