从 XIB Viewcontroller 中的 segmentcontrol 到 Storyboard Viewcontroller

Posted

技术标签:

【中文标题】从 XIB Viewcontroller 中的 segmentcontrol 到 Storyboard Viewcontroller【英文标题】:Segue from segmentcontrol in XIB Viewcontroller to Storyboard Viewcontroller 【发布时间】:2013-01-18 23:59:19 【问题描述】:

我在 xib 中创建的视图控制器(UISegmentController.h、UISegmentController.m、UISegmentController.xib)中有一个段控件。现在我正在尝试继续(理想情况下推送)到我创建的 Storyboard 视图控制器(ChartviewController.h,ChartviewController.m)。这个 Viewcontroller 将保存图像。我尝试按如下方式执行此推送:

-(IBAction) segmentedControlIndexChanged;


//some code
ChartViewController *chartviewpage = [[ChartViewController alloc] initWithNibName:@"ChartViewController" bundle:nil];
[self.navigationController pushViewController:chartviewpage animated:YES];
//some code

我曾经将此代码实现到另一个 xib 视图控制器,它运行良好。但现在不使用故事板视图控制器。 但是,我收到如下异常:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:“NSBundle(已加载)”,名称为“ChartViewController” * 首先抛出调用栈: (0x15e6012 0x11b3e7e 0x15e5deb 0x53ffac 0x404e37 0x405418 0x405648 0x405882 0x405b2a 0x41cef5 0x41cfdb 0x41d286 0x41d381 0x41deab 0x41e4a3 0x41e098 0x4048 0x11c7705 0x327920 0x3278b8 0x3e8671 0x3e8bcf 0x3e86a6 0x43d597 0x43f83b 0x35716d 0x357552 0x3353aa 0x326cf8 0x22d1df9 0x22d1ad0 0x155bbf5 0x155b962 0x158cbb6 0x158bf44 0x158be1b 0x22d07e3 0x22d0668 0x32465c 0x1d0d 0x1c35) libc++abi.dylib:终止调用抛出异常 (lldb)

你能帮忙吗?

非常感谢!

【问题讨论】:

【参考方案1】:

我终于想通了,做更多的研究。首先,需要在他们试图转换到的情节提要中实例化控制器(ChartViewcontroller)。然后你需要给控制器一个故事板ID名称(ChartID),它可以在选择控制器后在文件检查器下找到。最后执行推送到新控制器。

希望这对某人有所帮助。

UIStoryboard * myStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; ChartViewController *chartpage = [myStoryboard instantiateViewControllerWithIdentifier:@"ChartID"];

// 将选中的对象传递给新的视图控制器。 [self.navigationController pushViewController:chartpage Animation:YES];

【讨论】:

以上是关于从 XIB Viewcontroller 中的 segmentcontrol 到 Storyboard Viewcontroller的主要内容,如果未能解决你的问题,请参考以下文章

从 xib 文件中的操作按钮推送另一个 Viewcontroller

iOS - 使用 xib 中的 tabBarController 将数据从一个 viewController 传递到另一个 viewController

使用通过 ViewController 从 XIB 加载的子视图中的对象时出错

如何从 ViewController 中的 xib (nib) 实例化 UIView / UITableView

仅使用一个 ViewController 从 XIB 切换

如何通过推送从 xib 转换到 ViewController