从其他类的按钮将视图推送到导航控制器

时间:2012-06-20 22:53:01

标签: objective-c uiviewcontroller uinavigationcontroller uibutton pushviewcontroller

我有一个我在子类ViewController中创建的UIButton,并将它添加到我的MainViewController。

现在,我向此按钮添加了一个目标方法,该方法应该将另一个视图控制器推送到我的导航控制器(MainViewController中的那个)。

我知道当我按下按钮时方法确实调用了,但视图没有推送到导航控制器。

我扫描了这张图 - 这是图(我还添加了部分代码):

question Drawing

这是我在按钮中使用的代码: (记住它在不同的ViewController中)。

- (void)buttonPressed:(UIButton *)sender
{
    Photo_ScreenGlobalView *photo = [[Photo_ScreenGlobalView alloc] init];
    [self.navigationController pushViewController:photo animated:YES];
}

2 个答案:

答案 0 :(得分:2)

通常我会通过委托解决这些情况。如果有一个视图控制器从属于另一个(即“子”视图控制器),但应具有触发导航更改等的能力......那么它应该有一个弱指针回到它的“父”。然后,父VC应该实现一个适当命名的协议,其中包含要让孩子使用的回调。这些内容的名称可以是通用的,例如@property navigationDelegaterequestNavigationToViewController:,或者它们可以更具语义,例如@property userFormDelegateuserFormDoneButtonPressed:

一般来说,从属视图控制器不应该能够直接修改父级别的导航;但它可以通过像这些更松散耦合的接口来触发它。

答案 1 :(得分:-3)

我回来让大家知道我是怎么做到的。 谷歌搜索后发现这个很好的快速指南如何使 DELEGATE 与代表合作解决了我所有的问题。如果您需要任何帮助,请不要犹豫,发给我PM。

这是指南: http://css.dzone.com/articles/do-not-publishcreating-your