我已經用xib文件創建了一個名爲TopHeaderViewController的類,現在我使用另一個名爲iShared的類作爲共享實例方法。 在iShared中,我有一個叫做topHeader的@property,現在當我第一次調用iShared上的sharedInstance時,我打電話:topHeader = [[TopHeaderViewController alloc] init];每當我瀏覽另一個viewController時,我把這個視圖放在視圖控制器的頂部。 視圖正確顯示,但該按鈕不觸發事件。使用CustomViewController作爲頂部視圖欄
代碼的viewController:
- (void)viewDidLoad {
[super viewDidLoad];
ishared = [iShared sharedInstance];
// Do any additional setup after loading the view.
UIView *v = [ishared initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, headerView.frame.size.height)];
[headerView addSubview:v];
}
代碼iShared:爲TopHeaderViewController
- (id)init
{
self = [super init];
topHeaderVC = [[TopHeaderViewController alloc]init];
}
代碼:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
mainMenuController =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"mainMenuController"];
mainMenuController.superViewController = superViewController;
mainMenuController.view.frame = CGRectMake(0, self.view.frame.size.height, mainMenuController.view.frame.size.width, mainMenuController.view.frame.size.height);
[topView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"sfondo_nero_sfumato"]]];
[topView setFrame:CGRectMake(topView.frame.origin.x , topView.frame.origin.y, superViewController.view.frame.size.width, topView.frame.size.height)];
ishared = [iShared sharedInstance];
[self aggiornaTicketNotificationValue_betCoupon:ishared.betCoupon];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveTestNotification:)
name:NOTIFICATION_AGGIORNA_TOPHEADER_COUPON_LABEL
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveTestNotification:)
name:NOTIFICATION_AGGIORNA_TOPHEADER_ACCOUNT_DETAIL
object:nil];
}
- (IBAction)mnClick:(id)sender {
iShared *ishared = [iShared sharedInstance];
if (![ishared menuAperto]){
[UIView animateWithDuration:0.5
delay: 0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
mainMenuController.view.alpha = 1.0;
}
completion:nil];
[UIView commitAnimations];
[superViewController.view addSubview:mainMenuController.view];
ishared.menuAperto = true;
}else{
[UIView animateWithDuration:0.5
delay: 0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
mainMenuController.view.alpha = 0;
}
completion:nil];
[UIView commitAnimations];
[mainMenuController.view removeFromSuperview];
ishared.menuAperto = false;
}
}
有誰知道爲什麼我得到這個麻煩讓我的按鈕工作?
感謝
感謝您的幫助。我用菜單按鈕欄製作了一個自定義的UIVIew。 但是現在當我嘗試從菜單 –
@MirkoFogazzi展示其他控制器時,我得到了「不在視圖中的層次結構錯誤」@MirkoFogazzi如果您有新問題,請提出一個新問題! – matt