为什么当另一个segue结束时,不可能正确调用segue?我想我的代码必须是错的或无法调用?
- (IBAction)optionTapped
{
if (greeting)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alerta!" message:@"something.." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[self performSegueWithIdentifier:@"firstSegue" sender:itemToSent];
greeting = NO;
}
else
{
[self performSegueWithIdentifier:@"anotherSegue" sender:nil];
}
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"anotherSegue"]) {
UIViewController *viewController = segue.destinationViewController;
OptionsViewController *controller = (OptionsViewController *)viewController;
controller.delegate = self;
} else if ([segue.identifier isEqualToString:@"firstSegue"]) {
UINavigationController *navigationController = segue.destinationViewController;
CCGetViewController *controller = (CCGetViewController *)navigationController.topViewController;
controller.delegate = self;
controller.itemToSent = sender;
}
- (void)firstSegueViewController:(CCGetViewController *)controller didFinishAddItem:(InfoListItems *)item
{
itemToSent = item;
[self dismissViewControllerAnimated:YES completion:nil];
if (scanTap) {
[self scanTapped];
} else if(infoTap){
[self optionTapped];
}
}
还有一件事:“firstSegue”将它嵌入到NavigationController中,“anotherSegue”只是一个视图控制器。
答案 0 :(得分:1)
我试图不断地移动segue,但我也失败了。
所以我试着在第一个segue和第二个segue之间设置间隔一秒钟。
这很好用!当您在红色窗口中按下按钮时,会出现绿色窗口,然后会自动出现蓝色窗口。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self performSelector:@selector(segue) withObject:nil afterDelay:1.0];
}
- (void)segue
{
[self performSegueWithIdentifier:@"toBlue" sender:self];
}
您可以下载示例项目并运行它: