2011-03-30 138 views
0

我試圖執行從我的FirstViewController我SecondViewController的方法,和它的作品,該方法被調用因爲我看到我的消息(的NSLog(@「printSomething」))在日誌控制檯。 問題是,該方法試圖移動UIToolBar,但它不。 如果我把從自己的viewController它的工作原理,在UIToolBar動作,但是當我把它從另一個的viewController ...執行方法的方法,但UIToolBar無可奈何動畫工具欄

FirstViewController.m

UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] 
           initWithTitle:@"Opciones"            
             style:UIBarButtonItemStyleBordered 
             target:secondViewController 
             action:@selector(showOptions)]; 

SecondViewController.m

-(void)showOptions{ 
NSLog(@"printSomething"); 
[self.toolBar setFrame:CGRectMake(0, 40, 320, 50)]; 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.35]; 
[self.toolBar setFrame:CGRectMake(0, 180, 320, 50)]; 
[self.toolBar setUserInteractionEnabled:YES]; 
[UIView commitAnimations]; 

}

感謝烏拉圭回合重播。

回答

0

更改您的NSLog語句來此:

NSLog(@"self.toolbar is 0x%x",self.toolBar); 

,看看值爲非空。這是一個非常常見的問題 - 向Objective-C發送消息給空對象並不是運行時錯誤。

+0

它打印0x0,無論如何我應該怎麼做才能使它工作? – 2011-03-30 17:52:30

+0

這意味着變量爲空 - 它沒有指向任何地方。您需要提供對第二個視圖控制器的工具欄的有效引用。當您實例化第二個視圖控制器時,您可以將它作爲參數傳遞,然後執行self.toolbar = MyToolbarParameter。 – Rayfleck 2011-03-30 17:55:57