iOS从一个VC到另一个VC的不同方式

时间:2014-03-19 11:57:07

标签: ios window warnings segue hierarchy

我收到警告"尝试显示其视图不在Windows层次结构中的ViewController。"来来去去。虽然一切都有计划,但我不喜欢警告,所以我想更好地了解从一个VC到另一个VC的所有可用方法。

我知道3种方法,如果我错了,请纠正我。

1-我在VC1中创建了一个带动作的按钮。我创建了一个从VC1到VC2的segue,其名称(此处为VC1ToVC2),在我的action方法中,我调用了segue:

[self performSegueWithIdentifier:@"VC1ToVC2" sender:self];

2-我在VC1中创建了一个按钮,我从这个按钮直接向VC2创建了一个Segue。

3-我在VC1中创建了一个带动作的按钮。我确保我的VC2有一个故事板名称,然后我写下我的行动:

UIViewController *svc = [self.storyboard instantiateViewControllerWithIdentifier: @"VC2"];
 [self presentViewController:svc animated:YES completion:nil];

我的印象是,3的方式主要用于"去某个地方"然后"回来"

到同一个地方
[self dismissViewControllerAnimated:YES completion: nil];
例如,当你提出帮助时。

way1和way2之间的区别是什么?我试过两个,他们都工作。

这三种方式中的一种更容易导致" Window层次结构......"消息?

如果没有我做任何事情,这样的信息怎么来来去去?这使得跟踪变得困难。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

差异:

1)Seque binded UIObject perform custom triggering需要performSegueWithIdentifier然后triggers seque使用Seque

2)UIButtontriggering绑定,因此doneseque performed和{{1}}。