簡體   English   中英

在加載視圖時獲取NULL IBOutlets有什么可能性.. IOS

[英]What are the possibilities of getting NULL IBOutlets while loading a view.. IOS

我一直在研究IOS應用程序。 在我有單個項目之前,所有源代碼都是在該設置中正確加載了應用程序,現在我將其拆分為多個項目。 之后我現在面臨一個問題...在ViewDidLoad中,IBOutlet的按鈕都是零值,視圖也加載黑色。 我無法猜出是什么問題。 任何可能導致這種情況的想法......

我加載了我的觀點......

 main =[[main_page_controller alloc] init];

    if (main != NULL) 
        [root.navigationController pushViewController:main animated:YES];

我不確定我需要在這里發布哪部分代碼,以使問題更容易理解......請分享您的建議..

編輯:我運行了我的舊項目,然后嘗試使用我的新設置應用程序成功啟動。 我從設備中刪除了應用程序,並僅使用新設置加載,問題再次顯示出來。 那么舊的設置是什么? 我在新的...中錯過了什么?

首先檢查xib(nib)文件中的所有連接,如果已連接,則斷開它們,清理項目(cmd + k) ,然后再次連接連接。

看看這張圖片是否有聯系

在此輸入圖像描述

請參閱文檔

要使用nib初始化視圖控制器對象,可以使用initWithNibName:bundle:方法指定視圖控制器使用的nib文件。 然后,當視圖控制器需要加載其視圖時,它會使用存儲在nib文件中的信息自動創建和配置視圖。

初始化視圖控制器,並且您正在為視圖使用.xib文件時,需要調用initWithNibName:bundle: . 這意味着它將使用xib文件在loadView創建視圖。 目前,您只是使用init ,這將創建一個空白的UIViewController對象。

所以在這種情況下,你的代碼就是(假設主包中的.xib被稱為“MainViewControllerView.xib”):

main =[[main_page_controller alloc] initWithNibName:@"MainViewControllerView" bundle:nil];
if (main) {
    [root.navigationController pushViewController:main animated:YES];
}

還要檢查你的.xib文件,看看是否所有的IBOutlet都連接到了你想要的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM