2011-08-10 15 views
0

我對Objective C非常陌生,並且試圖創建一個只用一行代碼初始化對象(按鈕對象更加精確)的方法......我的方法聲明......Objective C - 初始化對象時通過方法參數傳遞對象名的問題

- (void)buttonDeclaration: (UIButton *)mButton :(int)xloc :(int)yloc :(int)bWidth :(int)bHeight 
         : (NSString *)sImage :(UIViewController *)mView :(SEL)mSelector 
{ 
    mButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [self buttonSetxy:mButton :xloc :yloc :bWidth :bHeight]; 
    [mButton setBackgroundImage:[UIImage imageNamed:sImage] forState:UIControlStateNormal]; 

    [mView.view addSubview:mButton]; 
} 

我的方法調用...

[...buttonDeclaration:newButton :40 :65 :80 :65...] 

,但是當我嘗試添加

[newButton setHidden:FALSE]; 

我調用該方法後什麼都不做。我不確定什麼是適當的術語,但對象名稱應該是newButton而不是mButton。這是否有意義,我該如何做到這一點?

+0

buttonSetxy方法做什麼???你是否正確設置了框架? – mayuur

+0

buttonSetxy僅僅是改變我的按鈕座標的另一種自定義方法。同樣,在我的主視圖控制器中進行單線編碼。 – leejhall

+0

可以發佈buttonSetxy的代碼嗎? Cz如果你不會設置btn的框架,那麼它會添加wudnt。 – mayuur

回答

0

實際上,在c中聲明的方法是不同的。

當你使用多個參數聲明方法時,它應該是這樣的。

  • (無效)的MyMethod:(INT)firstNum secondArgument:(INT)secondNum

所以UR方法將被宣佈像

  • (無效)buttonDeclaration (UIButton *)mButton xPosition:(int)xloc yPosition:(int)yloc Width:(int)bWidth height:(int)bHeight imageName:(NSString *)sImage myView:(UIViewController *)m視圖選擇:(SEL)mSelector

現在,您將通過

[自buttonDeclaration調用這個方法:myBtn的xPosition:5 yPosition:10寬度:5高度:10等。 ......]

,如果你想隱藏你的按鈕,只寫

myBtn.hid den = YES;

+0

這只是改變名稱,但不會有任何其他影響。雖然我同意使用未命名的參數是一件壞事。 – DarkDust

+0

是的,但它看起來太混亂了...... – mayuur