我有两个视图控制器。第一个是空的,第二个包含文本字段。如果此字段为空,我需要自动移动到第二个控制器。
我试过了:
NSUInteger VCcount = self.navigationController.viewControllers.count;
UIViewController *btVC = self.navigationController.viewControllers[VCcount-2];
if([self.btViewController.Text.text isEqualToString:@""])
{
[self.navigationController pushViewController:btVC animated:YES];
}
和此:
UIViewController* btVC = [storyboard instantiateViewControllerWithIdentifier:@"BTViewController"];
但是第一次启动程序只知道当前的控制器,并且不知道第二次。
我怎样才能到达那里?
答案 0 :(得分:0)
请参阅以下示例:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.textField.text = @"some text";
if (self.textField.text.length == 0) {
UIViewController *secondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"secondVC"];
[self.navigationController pushViewController:secondVC animated:NO];
}
}
如果您将“some text”的分配注释到textField,则将实例化并呈现secondVC。我不知道你要用前两行代码实现什么目的。
如果第二个VC已经存在,你可以通过知道它在堆栈上的索引,或者在将它推送到堆栈之前检查navigationController的viewControllers数组来引用它。如果它不存在,您只需从storyboard实例化它(使用正确的标识符)并按下它。