在 ios 中从 xib 移动到情节提要

Posted

技术标签:

【中文标题】在 ios 中从 xib 移动到情节提要【英文标题】:Move from xib to storyboard in ios 【发布时间】:2015-12-30 09:20:33 【问题描述】:

我有一个包含单个 xib 文件的应用程序,在这个 xib 文件中我创建了 tableList 好的,它工作正常。

这里我的主要要求是当我单击 tableList 行时,我想将“xib”文件移动到我的 UIStroryBoard 中,为此我在互联网上搜索了很多,但我没有得到任何解决方案。

请帮我写一些代码。

当我只在互联网上搜索时,我知道如何将一个 xib 移动到另一个 xib,如下面的代码,但我想将 xib 文件移动到 UIstrotyboard。

DetailViewController *detailVC = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
    [self.navigationController pushViewController:detailVC animated:YES];

【问题讨论】:

试试 DetailViewController * detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];创建类对象,因为 xib 和情节提要的代码不同。并设置您的视图控制器的标识符。 【参考方案1】:

这是一个示例,您可以在 Storyboard 上推送到 ViewController

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Your_storyboard_name" bundle:nil];
DetailViewController *detailVC = [sb instantiateViewControllerWithIdentifier:@"DetailViewController"];
[self.navigationController pushViewController:detailVC animated:YES];

【讨论】:

即使,self.storyboard 应该会有所帮助。 @Hemang 如果你之前初始化过这个storyboard,可以使用self.storyboard。但是如果这个ViewController 属于另一个故事板,你的detailVC 将是空的。例如,我的项目中有 5 个故事板文件。而且我每次调用 push 方法时都必须检查它【参考方案2】:

这是相同的代码,但在 swift 中

     let myStoryBoard = UIStoryboard(name: "<the name of  new storyboard as in 
      Project Navigator >", bundle: nil) 
       // the View Controller on the Story board that you will navigate to it
    let vc = sb.instantiateViewController(withIdentifier: "< the string identifier of the view controller >")
    vc.modalTransitionStyle = .flipHorizontal // as example
    present(vc, animated: true)

【讨论】:

以上是关于在 ios 中从 xib 移动到情节提要的主要内容,如果未能解决你的问题,请参考以下文章

将项目从 XIB/NIB 移动到 Storyboards

如何使用故事板启动应用程序

从情节提要中提取 nibs/xibs (iOS)

iOS - 无法让 @IBDesignable .xib 文件显示在情节提要或模拟器上

如何在不使用尺寸等级和情节提要的情况下创建适用于 iPhone 4 到 iPhone 6 Plus 的 XIB?

使用 xib 而不是情节提要的 iOS 应用程序扩展