presentViewController语言 - 视图纯黑色,viewDid___未调用方法


    ...
    SecondViewController *svc = [SecondViewController new];
    [self presentViewController:svc animated:YES completion:NULL];
}

此代码与我在另一个应用程序中使用的代码完全相同,但在这里我使用的是presentViewController而不是presentModalViewController
(completion:NULL使它们实际上相同。至少相同的结果。

创建模态视图的两种尝试的结构方式相同。主视图中的这些行、情节提要中的视图控制器以及匹配的.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"而终止应用程序,原因:"接收者...没有标识符的续集...">

告诉它执行一个 segue,但故事板中没有(我无法添加一个,我尝试使用的对象的"连接检查器"下没有故事板 Segues 部分(,所以它崩溃了。这是正常行为。

我想要的是拥有一个模态视图,而无需创建 segue。我已经做到了,所以我知道这是可能的。
我所需要的只是一点帮助让它工作。

.

performSegueWithIdentifier:@"Identifier" sender:nil NSSInvalidArgumentException
presentViewController:viewController animated:YES completion:NULL空视图

知道了。

将问题中的行替换为以下内容:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard"
                                                     bundle:nil];
SecondViewController *viewController =
            [storyboard instantiateViewControllerWithIdentifier:@"SecondView"];
[self presentViewController:svc animated:YES completion:NULL];

这个解决方案的功劳归功于IturPablo的自我回答问题:
TabBarController,覆盖应该选择视图控制器做一个segue

你在寻找performSegueWithIdentifier:sender:吗? 文档似乎与您的描述相符:

"你可以调用这个方法来以编程方式触发 Segue,也许 响应某些无法在情节提要中指定的操作 资源文件">

最新更新