凸起标签栏和dismissModalViewControllerAnimated

时间:2011-12-27 10:52:02

标签: objective-c ios4

我创建了一个带有凸起的Tab Bar的应用程序,就像我们在Foursquare,Instagram或DailyBooth等应用程序中看到的那样。为此,我将一个UIButton放在Tab Bar的中心,一切似乎都没问题,这里是AppDelegate中的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

 self.mainButton = [UIButton buttonWithType:UIButtonTypeCustom];
    // set up the mainButton with an image and calculate coordinates

[self.mainButton addTarget:self action:@selector(showMainViewController:) forControlEvents:UIControlEventTouchUpInside];

    [self.window addSubview:tabBarController.view];
    [self.window addSubview:mainButton];
    [self.window makeKeyAndVisible];
}

mainButton已在AppDelegate.h中定义,其属性(非原子,保留)和合成。

推送mainButton:

- (IBAction) showMainViewController:(id)sender {
    [self.mainButton setHidden:YES];
    MainViewController *mainVC = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:mainVC];
    [self.mainNavController presentModalViewController:nc animated:YES];
    [nc release];
    [mainVC release];
}

由于mainButton保持显示,我决定隐藏它。

此时我有一个疑问:我必须避免隐藏按钮?

当我决定解雇MainViewController时出现问题,我不知道我是否正常工作,我是通过MainViewController.m中的一个简单的[self dismissModalViewControllerAnimated:YES];来做的。 结果是我无法通过像[self.mainButton setHidden:NO];

之类的东西取消隐藏mainButton

1 个答案:

答案 0 :(得分:1)

这有助于我取消隐藏按钮。

NSArray *array = self.tabBarController.view.subviews;
for (int i=0; i<[array count]; i++) {
    if ([[array objectAtIndex:i] isKindOfClass:[UIButton class]]){
        UIButton *uibtn = (UIButton *) [array objectAtIndex:i];
        uibtn.hidden = NO;
    }
}