iphone - iOS 中使用 Storyboard View 或单独的 Nib 的自定义弹出窗口

标签 iphone objective-c ios popup storyboard

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

A la TweetBot:

enter image description here

我用过的方法:

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

  • 使用 instantiateViewControllerWithIdentifier 从主 Storyboard呈现弹出窗口

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

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

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

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

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

最佳答案

已编辑:

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

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

完成编辑

您可以使用的一件事是 Segues。假设您正在使用 StoryBoard,当您点击一个按钮并弹出一个 View 时,您可以通过这样的方式连接它们:

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

另一种使用 Segues 的方法是通过 StoryBoard UI。单击您想要的 View ,这将在连接检查器中显示类似屏幕截图的内容:

Segues Connection Inspector

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

关于iphone - iOS 中使用 Storyboard View 或单独的 Nib 的自定义弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12715214/

相关文章:

ios - 基于 4 英寸显示屏构建的设备不显示黑色顶部和底部栏

iphone - 如何检查设备是否有互联网连接: cocos-2d

ios - MITM 攻击报告已弃用的 NSURLConnectionDelegate

CgBI 图像到 RGBA 的 Java 转换器?

ios - Facebook iOS 应用程序的无效应用程序 ID

ios - iOS 中的基本表达语言

iphone - Xcode 默认优化级别?

objective-c - 无法从 NSMutableDictionary 中的单个元素形成数组 -[__NSCFString count] :

objective-c - 崩溃 Xcode 11,iOS13 设置 Root View Controller

ios - inapppbrowser 或相机关闭后 Phonegap 状态栏重叠