我创建了一个带有凸起的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];
答案 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;
}
}