【问题标题】:Uibutton in Wepopover Control [closed]Wepopover 控件中的 Uibutton [关闭]
【发布时间】:2012-11-12 06:28:01
【问题描述】:

如何在 WEpopover 控制器中包含 uibutton,我想要 WEpopover 中的一组 3 个按钮,单击导航到其他视图。我应该在 WEpopover 控制器中更改哪里?

【问题讨论】:

  • -viewDidLoad 是设置程序化 UI 层次结构的最常见位置。
  • @CodaFi 但是它将包含在弹出框控制器中的位置。当我单击时
  • 所以,让我先澄清一点:您已经设置了一个包含三个按钮的弹出框,但是现在您想在单击按钮时将新视图推入弹出框?
  • 我的疑问是如何在 WEpopover 控制器 @CodaFi 中包含三个按钮
  • 啊!我懂了。或许你应该阅读view controllersview hierarchies。在 iOS 中将子视图添加到视图中是一项微不足道的任务。

标签: iphone ios


【解决方案1】:

在底层,WEPopover 的工作原理是向mainWindow 添加一个子视图,一个“容器”,它是UIView 的子类,位于视图层次结构的最根部[1]。向该容器添加给定视图控制器的view 属性。要知道如何调整该视图的大小,它会向视图控制器询问其contentSizeForViewInPopover

因此,设置 3 个按钮的方式与为任何其他视图控制器设置 3 个按钮的方式相同。唯一的区别是在处理 3 个按钮的 UIViewController 子类中,您需要设置 contentSizeForViewInPopover

您可以在initviewDidLoad 中设置此属性。 (请记住将其添加到正确的 init 方法中——例如,如果您在情节提要中创建此视图控制器,则不会调用 init 而是调用 initWithCoder:)。

要实际添加按钮,您可能需要在viewDidLoad 中添加类似这样的代码:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];

[1] 如果您向一个视图询问其父视图,然后向该视图询问其父视图,依此类推,您最终会到达mainWindow

【讨论】:

  • -init 最好,但它们都可以工作。
  • 酷,感谢 CodaFi,编辑我的帖子。
  • 这里有两件事困扰着我:1) 容器不是 UIView,它是 UIWindow。 2)OP似乎有点新手,也许您可​​以解释设置按钮的方式是什么(一点伪代码永远不会伤害任何人)。无论如何 +1。
  • CodaFi,在我目前使用的WEPopover的实现中,WEPopoverContainerView是UIView的子类。但我是说窗口实际上是UIViewaKindOfClass,因为我认为这使得窗口的概念具有相关性。我将在帖子中澄清它是一个子类并添加一些示例代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多