У меня есть UINavigationController (a), который помещает UIViewController (b) в стек. (б) содержит UITabBarController (с). (c) имеет 5 вкладок, и любой из этих ViewControllers (d, e, f, g, h) должен иметь возможность вытолкнуть (b) из стека.
Я пробовал [[self.parentViewController navigationController] popViewControllerAnimated: YES]; кроме всего прочего, ни один из которых не работает. Есть идеи?
Edit:
.h файл:
@interface MATabViewController : UIViewController<UITabBarControllerDelegate> {
UIViewController *ref;
}
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) IBOutlet UIImageView *imgViewFooter;
@end
.m:
#import "MATabViewController.h"
@implementation MATabViewController
@synthesize tabBarController = _tabBarController;
@synthesize imgViewFooter;
- (void)viewDidLoad
{
[super viewDidLoad];
self.view = self.tabBarController.view;
self.tabBarController.delegate = self;
self.imgViewFooter.frame = CGRectMake(0.0f, 395.0f, 320.0f, 64.0f);
[self.tabBarController.view addSubview:self.imgViewFooter];
self.tabBarController.selectedIndex = 0;
ref = [[self.tabBarController viewControllers] objectAtIndex:0];
}
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
NSInteger index = [[tabBarController viewControllers] indexOfObject:viewController];
switch (index) {
case 0:
self.imgViewFooter.image=[UIImage imageNamed:@"footer_full.png"];
break;
case 1:
self.imgViewFooter.image=[UIImage imageNamed:@"footer_full.png"];
break;
case 2:
self.imgViewFooter.image=[UIImage imageNamed:@"footer_full.png"];
break;
case 3:
self.imgViewFooter.image=[UIImage imageNamed:@"footer_full.png"];
break;
case 4:
self.imgViewFooter.image=[UIImage imageNamed:@"footer_full.png"];
break;
default:
break;
}
return YES;
}
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (ref != viewController) {
[ref viewDidDisappear:YES];
ref = viewController;
[viewController viewDidAppear:YES];
}
}
@end
обратите внимание, что у меня есть главный хак в этой строке:
self.view = self.tabBarController.view;