如何通过appdelegate将视图推送到特定位置

时间:2013-04-25 12:43:59

标签: iphone ios objective-c xcode pop

我在弹出视图时遇到问题。 pop已成功完成但是当在该视图上弹出视图时,按钮操作被禁用,所以我可以帮助我。 如何弹出并将视图推送到ios中的特定位置。 我有5个视图控制器。

1 view -> 2 view -> 3 view -> 4 view -> 5 view 

我希望通过appDelegate从5视图弹出到2视图?

- (IBAction)btnAddQuotes:(id)sender
{
    LibraryVC *obj =[[LibraryVC alloc]initWithNibName:@"LibraryVC" bundle:nil];
    [self.navigationController popToViewController:obj animated:YES];
}

2 个答案:

答案 0 :(得分:1)

如果你的索引固定为2,那么就像

那样
-(void)gotoSpecificController
{
    UIViewController *destController = (UIViewController*)[self.navigationController.viewControllers objectAtIndex:2];
    [self.navigationController popToViewController:destController animated:YES];
}

或者您可以计算目标控制器的索引并将其替换为objectAtIndex方法。

修改

在按钮上单击这样写代码,在appdelegate中写上面的函数并适当声明。

-(IBAction)buttonClicked:(id)sender
{
    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
    [appDelegate gotoSpecificController];
}

答案 1 :(得分:0)

将此代码用于弹出特定视图控制器

NSArray *controllerArray = self.navigationController.viewControllers;

        for(int i=0;i<controllerArray.count;i++)
        {
            if([[controllerArray objectAtIndex:i]isKindOfClass:[LibraryVC class]])
            {

                [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:i] animated:YES];
                break;

            }
        }