【发布时间】:2013-01-02 19:06:12
【问题描述】:
This question 最接近描述我的问题,但我在一般过程中遗漏了一些东西,答案最终变成“没关系,我想出了一个未描述的不同解决方案”。
就我而言,我有一个带有导航栏及其控制器的 XIB。对于类字段,我已经填写了我的自定义类名。这是显示XIB的屏幕截图,因为我认为这应该是一个相对简单直接的设置......
我想要的(如开头的链接)是触发 touchesEnded 事件,以便我可以做一些事情。这适用于“视图”;我可以以编程方式写入事件,设置断点,然后查看断点是否被命中。但是,我更高级别的目标是在那时将一个新视图推送到应用程序上——这是我不应该在视图的功能中做的事情,而且我无论如何也做不到,因为我的视图无权访问导航控制器(除非我做了一些诡计来检索控制器,但我想干净利落地这样做)。
尽管它以编程方式为视图工作,但导航视图的控制器不会触发 touchesEnded 事件。我将它设置为委托,如下图所示,我怀疑这可能只是我需要做的一部分。
既然我已经设置了委托,并且已经看到 touchesEnded 事件被视图击中,为什么我的导航栏视图控制器没有接收到 touchesEnded 事件?我是不是弄错了,应该弄清楚如何从导航栏的视图中推送一个新视图,因为我已经看到 THAT touchesEnded 事件被击中了?这似乎是我应该在导航栏视图的控制器中处理的事情,但我无法获得该控制器的 touchesEnded 事件命中。
谢谢!
【问题讨论】:
-
我认为您不了解导航控制器的工作原理。你为什么不解释你想要达到的目标?如果要推送到新控制器,通常通过属于导航控制器的视图中的按钮(或表格单元格)来完成。您无需直接对导航栏执行任何操作,而是由控制器处理。
-
很可能就是这样。我想这样做,所以当我点击导航栏的一部分时,会推送一个新视图——就像这张图片中的 about 按钮可能会导致 (cdn2.raywenderlich.com/wp-content/uploads/2012/09/…)。不过,我不想显示按钮,而是希望它与背景图像齐平,并使用导航栏的触摸事件来开始此实现。我不能做与导航栏本身的按钮一样的事情吗?
-
我不确定是否可以这样做(可能,但我从来没有那样做)。您推动新观点的原因是什么?
-
好吧,我们想在导航栏中显示一个人的图片。当您点击您的图片时,会显示有关您作为用户的信息。这就是设计要求这样做的原因,但如果答案是“这是不可能的”或“为什么不应该以这种方式使用 XCode 有真正的基本架构原因,请改用右侧按钮”,我'愿意理解和传达这一点。一个带有人像的圆圈可能无法很好地解析为一个按钮,这就是为什么我只是在探索建立栏本身。
标签: objective-c ios uinavigationcontroller uinavigationbar touch-event