【问题标题】:Custom popups in iOS using storyboard views or separate nibs使用故事板视图或单独的 nib 在 iOS 中自定义弹出窗口
【发布时间】:2012-09-24 18:39:59
【问题描述】:

在 iOS 中呈现弹出窗口最正确/最有效/最新的方式是什么?

A la TweetBot:

我用过的方法:

  • 从单独的 nib 弹出一个弹出窗口并使用 loadNibNamed

  • 在主情节提要中显示了一个带有 instantiateViewControllerWithIdentifier 的弹出窗口

  • 纯粹以编程方式创建/呈现弹出窗口*

*我宁愿不使用这种方法,因为我的弹出窗口有一个相当复杂的自定义 UI

此外,一旦我通过上述任何方法加载了场景,我不知道如何将弹出窗口中的 UI 元素与插座/操作(协议?委托?)连接起来。

如果您能指出正确的方向,以最正确的方式创建/显示/使用弹出窗口,那就太棒了。

如果我太含糊,请告诉我,我可以添加更多细节。

【问题讨论】:

    标签: iphone objective-c ios popup storyboard


    【解决方案1】:

    已编辑

    嗯,输入我的答案后才看到你的截图。要做到这一点,您可以使用 UIAlertView 提供的功能。我很确定 TweetBot 的人也是这样做的。这个link here shows a blog article 可以让你做你需要的。

    除非您想进行疯狂的定制,否则有几个解决方案可以让您完成它。东西like this

    完成编辑

    您可以使用的一件事是 Segue。假设您正在使用 StoryBoard,并且当您点击一个按钮并弹出一个视图时,您可以通过以下方式将它们连接起来:

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
        if([[segue identifier] isEqualToString:@"ViewToBringIn"]) {
            ViewController *vc = [segue destinationViewController];
            vc.navigationItem.title = @"some title";
        }
    }
    

    使用 Segue 的另一种方法是通过 StoryBoard UI。单击您想要的视图,这将在 Connection Inspector 中显示类似于屏幕截图的内容:

    但是,如果您使用的是 nib 文件,那么您仍然可以通过代码创建它们并将它们推送到视图中(根据您想要的格式)。当然,视图的设计是通过 Interface Builder 完成的。

    【讨论】:

    • 所以您建议 1) 使用开源自定义弹出窗口方法或 2) 自定义 UIAlertView 是呈现自定义弹出窗口的最佳方法?
    • 到今天为止,是的,我相信自定义 UIAlertView 将是最好的方法之一,除非它没有为您提供足够的功能,然后尝试使用开源工具(当然您会在您的项目,不是吗?)。
    • 是的,嗯。这些都不能真正解决我想要做的事情。我想创建一个带有按钮、文本字段、自定义图形(单独的笔尖或故事板视图)的自定义视图,并让视图本身呈现(弹出样式,我可以编写动画)并使用协议/委托链接 UI 元素我的弹出窗口带有适当的方法。我能够以编程方式完成所有 UI/功能,但我不想这样做——因为自定义复杂的布局/图形,我宁愿使用 IB 视图(笔尖或情节提要)
    猜你喜欢
    • 2015-08-22
    • 1970-01-01
    • 2012-08-25
    • 2011-10-02
    • 2017-11-16
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多