我使用了故事板并在控制器之间拖动了导航。例如,从UIViewController
A到UIViewController
B到UIViewController
C。
我在UIViewController
A上有一个按钮。我正在使用该按钮并将动作拖动到UIViewController
B并将segue设置为推送类型。
然后在按钮上单击,我正在检查这样的条件:
if( go == YES )
{
// navigate to B
}
else
{
// don't navigate to B
}
如何编写代码以正确导航到B或停止导航到B?
我必须使用prepareForSegue
吗?
答案 0 :(得分:0)
直到这里,你已经正确完成了。现在尝试以下步骤:
在按钮单击方法中,如果要从A导航到B,请使用此语句。
[self performSegueWithIdentifier:@" yourSegueIdentifier"发件人:无];
在此,您必须提供在“界面”构建器中设置的标识符名称。
您的问题是您已直接连接按钮以将Segue推送到B控制器。要在条件为假时停止导航到B,请按照下列步骤操作:
希望这有帮助。
答案 1 :(得分:0)
无需每次都使用prepareForSegue
。
您也可以通过此代码推送视图控制器。
if( go == YES )
{
// navigate to B
UIStoryboard *story = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
viewController *viewObj = [story instantiateViewControllerWithIdentifier:@"viewController"];
[self.navigationController pushViewController:viewObj animated:YES];
}
else
{
// don't navigate to B
}
为此,您必须在故事板中将storyboardID作为“viewController”提供给viewcontroller
。