iPhone SDK:切换视图navigationcontroller

时间:2010-09-14 10:36:11

标签: iphone viewcontroller navigationcontroller

我在这里的第一个问题是温柔的:)

我正在尝试使用navigationController切换视图。 我得到了以下内容: 我有一个MainView控制器,它使用以下代码切换到不同的视图控制器:

UIButton *buttonPressed = (UIButton *)sender;

    switch (buttonPressed.tag) {
    case 1:
        viewController = catalogView;
        break;
    case 2: 
        viewController = locatorView;
        break;
    case 3:
        viewController = galleryView;
        break;
}
[[self navigationController] pushViewController:viewController animated:YES];

现在我尝试切换到其中一个视图中的另一个视图。

我想:我必须导入主视图,然后在这里创建一个方法来切换视图。

e.g。

- (IBAction)goToProductView {
    //UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Test" message:@"hier" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil] autorelease];
    //[alert show];
    viewController = galleryView;
    [[self navigationController] pushViewController:viewController animated:YES];
}

我从一个像这样的视图控制器中调用这个函数:

myViewController *mainView = [[myViewController alloc] init];
[[self navigationController] popViewControllerAnimated:NO];
[mainView goToProductView];

这里调用mainView的函数(如果我取消引用则会显示警告)但视图不会更改。

这里有人可以告诉我为什么,或者有更好的解决方案吗?

提前致谢

(ps。如果我错过任何信息,请随时提出,我会尽快提供)

2 个答案:

答案 0 :(得分:0)

您的调用视图/视图控制器流程不正确。 如果你能解释你想要的正确场景,我会告诉你解决方案。或者发布您的代码以便更好地理解。

答案 1 :(得分:0)

我发现了我的错误。

我正在嵌套这样的视图:

mainView - SecondView            ThirdView

并要求mainView从SecondView转到ThirdView。

而不是:

MainView - SecondView - ThirdView

现在只需要让secondView转到第三个视图。

对于遇到同样问题的其他人,我发现http://www.edumobile.org/iphone/iphone-programming-tutorials/navigationcontroller-application-in-iphone/非常有用。