为什么我的 UITableView 无法加载详细信息视图?- 不调用 loadView 和 viewDidLoad



我有一个关于为什么我的 UITableView 无法加载详细信息视图的问题...我以前用界面构建器做过,但现在我只是想纯粹地以编程方式完成。

在我的表格视图中:

@property (strong, nonatomic) RLCASearchDetailViewControllerViewController *searchDetailViewController;

在我的表格视图中:

@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 中表现为,当单击表单元格时,当视图应更改为子视图时,没有任何反应。

我做错了什么?请帮忙...这让我发疯了,我已经在互联网上翻找了一段时间,希望得到答案。

谢谢 - 我真的很感激! ;)

真诚地皮奥特。

如果您没有使用笔尖,请更改以下代码行:

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

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

希望对您有所帮助!

表视图未嵌入在导航控制器中,因此无法推送新的视图控制器。

由于详细信息视图控制器永远不会显示在屏幕上,因此它永远不会打扰加载其视图,这就是为什么您从 loadView 或 viewDidLoad 方法中看不到任何内容的原因。

你不演示如何为应用设置初始视图控制器,但它应是一个导航控制器,其中表视图控制器作为根视图控制器。

如果您是初学者,则使用情节提要比尝试在代码中完成所有内容要好得多。避免界面构建器几乎没有好处和缺点。

最新更新