簡體   English   中英

為什么我的UITableView無法加載detailView? -不調用loadView和viewDidLoad

[英]Why can't my UITableView load the detailView? - loadView and viewDidLoad are not called

我有一個問題,為什么我的UITableView無法加載detailView ...我之前已經使用界面生成器完成過此操作,但是現在我只是想以編程方式(純粹是編程方式)進行操作。

在我的tableView.h中:

@property (strong, nonatomic) RLCASearchDetailViewControllerViewController *searchDetailViewController;

在我的tableView.m中:

@synthesize searchDetailViewController = _searchDetailViewController;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (!self.searchDetailViewController) 
    {

        self.searchDetailViewController = [[RLCASearchDetailViewControllerViewController alloc] initWithNibName:@"" bundle:nil];

    }

    SearchItem *item = [ content objectAtIndex:indexPath.row ];

    [self.navigationController pushViewController:self.searchDetailViewController animated:YES];

    self.searchDetailViewController.detailItem = item;

}

順便說一句,我嘗試了initWithNibName:值為nil,如上的空字符串,甚至@“ RLCASearchDetailViewControllerViewController”。 什么都行不通...

在我的RLCASearchDetailViewControllerViewController.h中:

@interface RLCASearchDetailViewControllerViewController : UIViewController
{

    SearchItem *detailItem;

}

@property (strong, nonatomic) id detailItem;

@end

在我的RLCASearchDetailViewControllerViewController.m中:

@synthesize detailItem = _detailItem;

- (void)setDetailItem:(SearchItem*)newDetailItem
{
    NSLog( @"GETS HERE" );
    if (_detailItem != newDetailItem) {
        _detailItem = newDetailItem;

        // Update the view.
        [self configureView];
    }
}

- (void)configureView
{
    // Update the user interface for the detail item.

    if (self.detailItem) 
    {

       NSLog( @"GETS HERE" );

    }

}

- (void)loadView
{
    [super loadView];
    // If you create your views manually, you MUST override this method and use it to create your views.
    // If you use Interface Builder to create your views, then you must NOT override this method.

    NSLog( @"DOES NOT GET HERE" );

}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSLog( @"DOES NOT GET HERE" );
}

如上所示,當我實現了一些調試打印后,它可以完成理論上應該做的事情,但是由於某種原因不會加載視圖。 當單擊表格單元格,將視圖更改為子視圖時,這在GUI中沒有任何表現。

我究竟做錯了什么? 請幫助...這一直讓我發瘋,並且我一直在互聯網上翻找一段時間,以期得到答案。

非常感謝-非常感謝! ;)

真誠的,Piotr。

如果您不使用筆尖,請更改以下代碼行:

self.searchDetailViewController = [[RLCASearchDetailViewControllerViewController alloc] initWithNibName:@"" bundle:nil];

self.searchDetailViewController = [[RLCASearchDetailViewControllerViewController alloc] init];

希望能幫助到你 !

您的表格視圖未嵌入導航控制器中,因此無法推送新的視圖控制器。

由於詳細視圖控制器永遠不會顯示在屏幕上,因此它永遠不會打擾加載其視圖,這就是為什么您從loadView或viewDidLoad方法看不到任何內容的原因。

您沒有顯示如何為應用設置初始視圖控制器,但是它應該是一個導航控制器,並將表視圖控制器作為根視圖控制器。

如果您是初學者,則故事板要比嘗試在代碼中全部完成要好得多。 避免使用界面生成器幾乎沒有好處,也有很多缺點。

暫無
暫無

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

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