通过UIActionSheet切换视图

时间:2012-01-13 23:42:35

标签: uitoolbar uiactionsheet

我有一个带有标准UIView的应用程序,其中包含一个工具栏。我可以点击工具栏上的一个按钮来打开UIActionSheet,并且能够在那里显示我的文本而没有任何问题。我想要做的是让操作表项显示与我的项目不同的XIB。我已经在相关的头文件和实现文件以及XIB中设置了所有内容,但我需要将点击操作表项的操作链接到显示第二个视图。

这是我到目前为止所做的:

- (void)actionSheet:(UIActionSheet *)sheet willDissmissWithButtonIndex:(NSInteger)buttonIndex {

    if (buttonIndex != [sheet cancelButtonIndex]) {

        if (buttonIndex == 0) {

            ABC *secondview = [[ABC alloc] initWithNibName:nil bundle:nil];
            [self presentModalViewController:secondview animated:YES];
        }

        if (buttonIndex == 1) {

            DEF *secondview = [[DEF alloc] initWithNibName:nil bundle:nil];
            [self presentModalViewController:secondview animated:YES];

        }

        if (buttonIndex == 2) {

            GHI *secondview = [[GHI alloc] initWithNibName:nil bundle:nil];
            [self presentModalViewController:secondview animated:YES];   

        }

    [self dismissModalViewControllerAnimated:YES];

    };

}

这会打开我的操作表并显示所有正确的信息,但点击“ABC”,“DEF”或“GHI”只会关闭操作表,就好像我点击了取消按钮一样。如何设置它以便点击“ABC”,“DEF”或“GHI”在我的项目中打开一个不同的XIB?

1 个答案:

答案 0 :(得分:0)

首先修复您的方法名称:您拼错了“dismiss”。如果这是您的实际代码,则当前未调用委托方法。

随访:

好的,我测试了你的代码(有或没有看似不必要的dismissModalViewController ...),它对我有用。

这让我觉得你的大型设置有问题。您是否设置了断点并确保您的代码实际运行?

如果它没有运行(这是我的怀疑),请检查您是否未能为委托传递适当的值:当您设置UIActionSheet时。 (特别是,您是否已将nil作为委托传递?这会导致您所描述的那种无声失败。)

您是否收到编译器/ Clang的任何警告?