以编程方式从模态视图控制器切换父选项卡

时间:2012-08-29 15:42:43

标签: ios iphone uitabbarcontroller

在我的应用中,您可以使用模态视图添加照片。当模态视图被解除时,我想自动将标签栏控制器切换到第二个标签(照片查看器屏幕)。

我发现this answer关于如何以编程方式切换标签,但我不确定将此代码放在模态视图控制器中的哪个位置。

1 个答案:

答案 0 :(得分:3)

您可以创建委托协议并将委托属性分配给以模态方式呈现的viewController,并在拍摄照片后调用dismissModalViewControllerAnimated时通知其委托。

编辑:添加了一些有关实施的更多信息

在您以模态方式呈现的视图控制器类上,您将声明一个协议:

@protocol YourUIViewControllerSubclassDelegate;

然后,您将向您的班级添加一个属性:

@property (nonatomic, unsafe_unretained)id <YourUIViewControllerSubclassDelegate>delegate;

最后,在你的类接口声明上调用@end之后,你将完成协议:

@protocol YourUIViewControllerSubclassDelegate <NSObject>
- (void)viewController:(YourViewControllerSubclass *)viewController isBeingDismissedWithImage:(BOOL)imageTaken;
@end

因此,在你的YourUIViewControllerSubclass中,在调用dismissModalViewControllerAnimated之前,你会这样做:

[self.delegate viewController:self isBeingDismissedWithImage:YES or NO]; 

因此,在创建YourUIViewControllerSubclass时,需要分配delegate属性。无论谁是YourUIViewControllerSubclass的委托,都需要符合YourUIViewControllerSubclassDelegate协议,并实现协议方法。在协议方法的这个实现中,您将切换到要切换到的任何选项卡。