我有一个我在子类ViewController中创建的UIButton,并将它添加到我的MainViewController。
现在,我向此按钮添加了一个目标方法,该方法应该将另一个视图控制器推送到我的导航控制器(MainViewController中的那个)。
我知道当我按下按钮时方法确实调用了,但视图没有推送到导航控制器。
我扫描了这张图 - 这是图(我还添加了部分代码):
这是我在按钮中使用的代码: (记住它在不同的ViewController中)。
- (void)buttonPressed:(UIButton *)sender
{
Photo_ScreenGlobalView *photo = [[Photo_ScreenGlobalView alloc] init];
[self.navigationController pushViewController:photo animated:YES];
}
答案 0 :(得分:2)
通常我会通过委托解决这些情况。如果有一个视图控制器从属于另一个(即“子”视图控制器),但应具有触发导航更改等的能力......那么它应该有一个弱指针回到它的“父”。然后,父VC应该实现一个适当命名的协议,其中包含要让孩子使用的回调。这些内容的名称可以是通用的,例如@property navigationDelegate
和requestNavigationToViewController:
,或者它们可以更具语义,例如@property userFormDelegate
和userFormDoneButtonPressed:
一般来说,从属视图控制器不应该能够直接修改父级别的导航;但它可以通过像这些更松散耦合的接口来触发它。
答案 1 :(得分:-3)
我回来让大家知道我是怎么做到的。 谷歌搜索后发现这个很好的快速指南如何使 DELEGATE 与代表合作解决了我所有的问题。如果您需要任何帮助,请不要犹豫,发给我PM。
这是指南: http://css.dzone.com/articles/do-not-publishcreating-your