2016-05-30 64 views
2

我已經下列本教程,以便在按鈕的視圖中的控制器的推加載XIB視圖: http://www.thomashanning.com/loading-a-view-from-a-xib/夫特載入從XIB

在該行:

if let customView = NSBundle.mainBundle().loadNibNamed("CustomView", owner: self, options: nil).first as? CustomView { 

我得到下面的錯誤: 使用未申報類型爲「CustomView」

我也跟着教程每S tep幾次,我不知道我錯過了什麼。任何人都可以幫助你瞭解什麼是錯的嗎?

+0

Tha很明顯是的。但是我確實... – asheyla

+0

選擇您的CustomView.swift文件,並檢查Xcode的信息面板中是否正確檢查了其目標框,可能它沒有正確定位。 – Moritz

+0

在目標成員資格這是我的項目名稱,它被選中 – asheyla

回答

0

謝謝大家的詳細解答,不幸的是他們都沒有幫助。

在發生什麼事情時沒有任何邏輯,因爲我無法創建任何類型的新類並在沒有錯誤的情況下調用它們。

因此經過很多小時的沮喪我創建了一個新項目,將其中的所有舊文件(plist除外)拖放到一個運行後,我可以創建新類並創建它們的實例而沒有錯誤。

1

錯誤表明您錯過了一步,宣佈類

Use of undeclared type 'CustomView'

一個幾件事情可以錯過:

  1. 你沒有創建CustomView.swift文件,教程跳過此部分。該文件應contine如下:

    import UIKit 
    
    class CustomView: UIView { 
        @IBAction func ButtonDidPressed(sender: AnyObject) { 
        print("Button Pressed") 
        } 
    } 
    

    通訊錯誤(編輯):

    Use of undeclared type 'CustomView'

  2. 在故事板Identity Inspector您沒有正確設置類名。

    對應的錯誤(在運行時):

    Unknown class CustomView in Interface Builder file.

  3. 類聲明是不相同的號召,但我認爲你應該能夠識別Xcode編輯器這種情況。

    通訊錯誤(編輯):

    Use of undeclared type 'CustomView'

+1

偉大的分析,第一次我想設置文件的所有者到CustomView –

+0

感謝您的詳細解答。我已經通過了你所有的觀點,但他們都沒有幫助過。任何新創建的類似乎都有問題。我無法調用它的一個實例,只有我創建的舊類的實例。 – asheyla

+0

這是工作項目。嘗試和比較。我沒有嘗試並修復這些限制,但是遵循教程。 link.https://dl.dropboxusercontent.com/u/15024098/example.zip – Idan

0

您可以用這種方式爲UIView類給予相同的名稱和查看/的.xib也

You can use this way give same name for UIView class and View/.Xib also

let alert = NSBundle.mainBundle().loadNibNamed("PromotionMenu", owner: nil, options: nil)[0] as? PromotionMenu 
     alert?.delegate = self 
     self.view.addSubview(alert!)