2

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

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

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

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

问题绘图

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

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

2 回答 2

2

通常我会通过委托来解决这些情况。如果有一个视图控制器从属于另一个视图控制器(即“子”视图控制器),但应该能够触发导航更改等......那么它应该有一个指向它的“父”的弱指针。然后父 VC 应该实现一个适当命名的协议,并带有一个回调供孩子使用。这些事物的名称可以是通用的,例如@property navigationDelegateand,requestNavigationToViewController:或者它们可以更具语义性,例如@property userFormDelegateanduserFormDoneButtonPressed:

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

于 2012-06-20T23:02:05.233 回答
-3

我回来让你们知道我是怎么做到的。在谷歌上搜索了很多之后,发现这个很好的快速指南如何制作DELEGATE 并与代表一起工作解决了我所有的问题。如果您需要任何帮助,请随时给我发送 PM。

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

于 2012-06-26T23:50:05.647 回答