[英]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.