2016-11-04 37 views
0

這是基本的,應該開箱即用,所以我沒有任何線索爲什麼不這樣做。我試圖刪除鏈接到IBAction並再次重寫 - 日誌不顯示它被點擊。奇怪的。IBAction爲標準按鈕不起作用

enter image description here

下面的代碼:

@IBAction func onManClicked(sender: AnyObject) { 
    NSLog("onManClicked") 
    person.gender = 1 
    genderUpdate() 

} 

NSLog部分永遠不會觸發。 因此,我在這ViewController四個按鈕都沒有響應。 問題出在哪裏?

這是我如何添加這整個視圖 - 我認爲這是問題。

let vc = PersonalDialog(nibName :"PersonalDialog", bundle: nil, section: section, position: position, person: Person()) 
    vc.view.frame = UIScreen.mainScreen().bounds 
    parentVC.view.addSubview(vc.view) 

我是新來的iOS的研究與開發,我不知道熱這樣做的權利 - 我現在明白了,我加了一個子視圖,但並沒有爲它添加了控制器。可能。但是,它的確稱爲viewDidAppear方法

回答

1

您是否嘗試檢查按鈕交互是否已啓用,以及它的父視圖? 如果它被某些對象或其他視圖重疊?

我以前經歷過這個,我只是檢查了所有這一切,它有點解決了這個問題。

0

你說:

我試圖刪除鏈接到IBAction爲,並再次改寫它

所以,儘量刪除在Interface Builder的連接,然後重新連接(你可能已經做到這一點)

另一件需要注意的事情。

如果我在斯威夫特3,創建這樣的方法:

@IBAction func buttonClicked(sender: AnyObject) { 
     print("hello") 
    } 

,然後嘗試連接到然後連接看起來像這樣的「與

enter image description here

公告發件人「部分,我沒有添加,但它是新的Swift 3參數命名的一部分。

爲了避免這種情況,我有我的方法重命名爲這樣的:

@IBAction func buttonClicked(_ sender: AnyObject) { 
    print("hello") 
} 

(注意發件人前_

如果然後我重新連接:

enter image description here

事情看起來和預期一樣也許這是什麼也咬你了?接口生成器尋找@IBAction,稱爲onManClickedWithSender,並且您定義@IBAction,稱爲onManClicked

希望這可以幫助你。

+0

是的,我也刪除了IB的參考。你可以看看圖片,它調用onManClicked方法,就像在代碼中一樣,它也是在ManClicked方法上。沒有任何4個按鈕點擊的作品。我編輯了我的帖子以顯示如何添加此視圖。可能是這個問題?我是iOS和swift的新手。 – user2976267

+0

你可以嘗試將它重命名爲'onManClicked(_ sender:AnyObject)'(注意_) – pbodsk

+0

是的,它會在參數中顯示一個警告「Extraneous'_':'sender'沒有關鍵字參數名稱。我編輯後的結束 - 可能是問題在那裏? – user2976267