...
SecondViewController *svc = [SecondViewController new];
[self presentViewController:svc animated:YES completion:NULL];
}
此代码与我在其他应用中使用的代码完全相同,但此处我使用presentViewController
而不是presentModalViewController
(completion:NULL
使它们实际上完全相同。至少相同的结果。)
创建模态视图的两种尝试都以相同的方式构建。主视图中的那些行,Storyboard中的视图控制器以及匹配的.h
和.m
文件。唯一的区别是,在这里我想要一个程序化的触发器,所以不可能拖动一个segue并完成它。
我有一个对象设置来识别手势并调用转换方法。这可能是造成问题的原因(至少是其中的一部分),但这是必要的。
使用UIButton会作弊。没有截止日期,没有捷径。
编辑: NSLog输出显示奇怪的东西。
2012-04-05 10:41:12.047 MyApp[5962:707] <SecondViewController: 0x1d8c130>
2012-04-05 10:41:12.479 MyApp[5962:707] <SecondViewController: 0x1d8e360>
所以我再做一些愚蠢的事情,碰巧有一个非常简单的解决方法,对吧?
再次编辑:presentViewController…
被多次调用。固定它。但仍然是黑色。
返回performSegueWithIdentifier:sender:
而不是更容易presentViewController:animated:completion:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'Receiver ...没有带标识符的segue''
我告诉它要执行一个segue,但是故事板中没有一个(我不能添加一个,对象I的'Connections inspector'下没有Storyboard Segues部分'试图使用),所以它崩溃了。这是正常行为。
我想要的是一个模态视图,而不需要创建一个segue。我已经完成了,所以我知道这是可能的 我需要的只是帮助它发挥作用。
performSegueWithIdentifier:@"Identifier" sender:nil
NSSInvalidArgumentException
presentViewController:viewController animated:YES completion:NULL
空视图
答案 0 :(得分:12)
知道了。
用以下代码替换问题中的行:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard"
bundle:nil];
SecondViewController *viewController =
[storyboard instantiateViewControllerWithIdentifier:@"SecondView"];
[self presentViewController:svc animated:YES completion:NULL];
这个解决方案的功劳归功于IturPablo自己回答的问题:
TabBarController, overwriting shouldSelectViewController to do a segue
答案 1 :(得分:1)
您在寻找performSegueWithIdentifier:sender:
吗?文档似乎与您的描述相符:
“你可以调用这个方法以编程方式触发segue 响应故事板中无法指定的某些操作 资源文件“