【问题标题】:Switching views via UIActionSheet通过 UIActionSheet 切换视图
【发布时间】:2012-01-13 23:42:35
【问题描述】:

我有一个带有标准 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?

【问题讨论】:

    标签: uitoolbar uiactionsheet


    【解决方案1】:

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

    跟进:

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

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

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

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

    【讨论】:

    • 这绝对是其中的一部分。我进行了更改,但应用程序的行为没有变化。它仍然不能正确地将操作表的点击路由到适当的视图。
    • 你一针见血:我的代表设置为“nil”。唯一的问题是——如果你已经不知道的话——我什至不知道我在做什么。我查看了有关 UI 委托协议参考的 Apple 文档,但没有得到任何结果。您是否有机会对此有进一步的了解?
    • 开个玩笑……我把它改成了“self”,它就像一个冠军!感谢您为我指明正确的方向!
    • 很高兴能提供帮助。别担心,每个人都从某个地方开始。如果不清楚,则需要将委托设置为实现委托方法的任何对象。在这种情况下,您的视图控制器也是委托,所以 self 是正确的。阅读“委托模式”以获取更多信息。 (顺便说一句,如果您觉得我的回答有帮助,请正式接受。;-)
    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多