Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 抛出Objective-C异常。名称:NSInvalidArgumentException原因:找不到名为';访问"信息"';捆绑_C#_Ios_Xamarin.ios_Storyboard_Visual Studio 2019 - Fatal编程技术网

C# 抛出Objective-C异常。名称:NSInvalidArgumentException原因:找不到名为';访问"信息"';捆绑

C# 抛出Objective-C异常。名称:NSInvalidArgumentException原因:找不到名为';访问"信息"';捆绑,c#,ios,xamarin.ios,storyboard,visual-studio-2019,C#,Ios,Xamarin.ios,Storyboard,Visual Studio 2019,每当我试图以编程方式从另一个故事板访问ViewController时,就会出现此错误。我的xamarin.ios应用程序似乎无法识别保存ViewController的情节提要。我的故事板名称是访问\u info.storyboard 我尝试了以下代码 UIStoryboard board = UIStoryboard.FromName("visit_info", null); UIViewController ctrl = (visitControl

每当我试图以编程方式从另一个故事板访问ViewController时,就会出现此错误。我的xamarin.ios应用程序似乎无法识别保存ViewController的情节提要。我的故事板名称是
访问\u info.storyboard

我尝试了以下代码

 UIStoryboard board = UIStoryboard.FromName("visit_info", null);
            UIViewController ctrl = (visitController)board.InstantiateViewController("visitController");
            ctrl.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
            this.PresentViewController(ctrl, true, null);
下面是我在上面第一句话中遇到的全部错误:

Objective-C exception thrown.  Name: NSInvalidArgumentException Reason: Could not find a storyboard named 'visit_info' in bundle NSBundle </Users/amer/Library/Developer/CoreSimulator/Devices/3B343541-D0E1-410E-880C-18E9FE0289D8/data/Containers/Bundle/Application/A01C5D60-96A8-4BF8-993B-C0D90EE7EE5A/samra_op2.app> (loaded)
Native stack trace:
    0   CoreFoundation                      0x00007fff2043a126 __exceptionPreprocess + 242
    1   libobjc.A.dylib                     0x00007fff20177f78 objc_exception_throw + 48
    2   UIKitCore                           0x00007fff247e48a6 -[UIStoryboard name] + 0
    3   samra_op2                           0x0000000100696699 xamarin_dyn_objc_msgSend + 217
    4   ???                                 0x00000001062ec539 0x0 + 4398695737 


 
引发了Objective-C异常。名称:NSInvalidArgumentException原因:在捆绑包NSBundle(已加载)中找不到名为“访问信息”的情节提要 本机堆栈跟踪: 0 CoreFoundation 0x00007fff2043a126例外预处理+242 1 libobjc.A.dylib 0x00007fff20177f78 objc_异常_抛出+48 2 UIKitCore 0x00007fff247e48a6-[UIStoryboard名称]+0 3 samra_op2 0x0000000100696699 xamarin_dyn_objc_msgSend+217 4.0x00000001062ec539 0x0+4398695737
我想这里有一个输入错误,你的故事板名称是
visit\u into.storyboard
,而在你的代码中是UIStoryboard.FromName(
visit\u info
”,null)

请小心进入信息

您的代码看起来很好:)

更新

按照我的步骤再次执行此操作:

1.我创建了一个新的iOS项目,并右键单击该项目-->
添加
-->
新项目
-->
ViewController With Storyboard

2.转到刚刚创建的情节提要,转到工具箱,选择新的ViewContrllor并将其添加到情节提要

3.转到情节提要中ViewContrllor的
属性
面板,在那里设置
情节提要ID
,同时检查
使用情节提要ID

4.然后在另一个
视图控制器中调用您的代码:

public override void ViewDidAppear(bool animated)
{
    base.ViewDidAppear(animated);

    UIStoryboard board = UIStoryboard.FromName("visit_info", null);
    UIViewController ctrl = (visit_info)board.InstantiateViewController("visit_info");// here use storyboard ID
    ctrl.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
    this.PresentViewController(ctrl, true, null);
}

我知道答案,但我需要一个解释。当我第一次创建控制器时,我编辑了名称,然后更改了与控制器相关的所有其他名称,包括controller.cs、controller.designer.cs中的控制器类名和控制器属性。当我尝试控制器的旧名称时,它不知怎么起了作用。

事实并非如此。我只是在堆栈溢出上写错了名称,而不是在代码上写错了。我只是测试了代码,它工作得很好。请删除visit_info.storyboard并重新创建一个新的故事板,然后再试一次好吗?我尝试了,但没有改变任何内容,仍然面临相同的问题。如果调用UIStoryboard.FromName(“Main”,null);,是否会遇到相同的问题;?如果我使用
UIStoryboard.FromName(“Main”,null)它在第二行给了我一个错误,说没有名为visitController的控制器<代码>引发Objective-C异常。名称:NSInvalidArgumentException原因:序列图像板()在项目目标->
构建阶段->
中不包含标识符为“visitController”的视图控制器,
复制捆绑资源-/code>,
是否访问到.Storyboard
中?是否在visual studio中?对不起,我错了,我没注意到这是Xamarin。例外情况意味着没有名为“visit_info”的故事板,因此您确实需要检查文件是否被复制。