uisplitviewcontroller:将选定的行从主传递到细节

Posted

技术标签:

【中文标题】uisplitviewcontroller:将选定的行从主传递到细节【英文标题】:uisplitviewcontroller: passing selected row from master to detail 【发布时间】:2013-05-09 17:15:44 【问题描述】:

这几天我一直在为 UISplitViewControllers 苦苦挣扎,这是我的问题:我有一个主视图,声明如下

#import <UIKit/UIKit.h>
#import "DetailViewController.h"

@class DetailViewController;
@interface MasterViewController : UITableViewController 
    NSMutableArray *title, *subTitle;
    unsigned int quantity;


@property (strong, nonatomic) DetailViewController *detailViewController;
@end

在 master 的 .m 文件中,一切正常(我能够从 sqlite db 填充表并按行显示内容)。当它选择一行并填充右侧的详细视图,没有任何反应。这是行选择:

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

    MyObject itemFromDB;
    /* 

    ... DB stuff here ...

    */

    self.detailViewController.detailItem = itemFromDB;  

现在是 DetailViewController 实现:

@interface DetailViewController : UIViewController <UISplitViewControllerDelegate>
@property (strong, nonatomic) MyObject *detailItem;
@property (weak, nonatomic) IBOutlet UILabel *name, *phone;
@end

还有细节的 .m:

#import "DetailViewController.h"
@interface DetailViewController ()
- (void)configureView;
@end

@implementation DetailViewController

- (void)setDetailItem:(MyObject *)newItem

    if (_detailItem != newItem) 
        _detailItem = newItem;
        [self configureView];
    


- (void)configureView

    if (self.detailItem) 
        self.name.text = [self.detailItem name];
        self.phone.text = [self.detailItem phone];
    


- (void)viewDidLoad

    [super viewDidLoad];
    [self configureView];


- (void)didReceiveMemoryWarning

    [super didReceiveMemoryWarning];
 

简单来说:选择行后细节没有注意到任何变化。有什么帮助吗?

【问题讨论】:

【参考方案1】:

你从未定义过 self.detailViewController。你应该这样做:

self.detailViewController = self.splitViewController.viewControllers[1];

【讨论】:

我不敢相信这是这么小的事情......我真的需要睡觉xD非常感谢;)

以上是关于uisplitviewcontroller:将选定的行从主传递到细节的主要内容,如果未能解决你的问题,请参考以下文章

将 UIToolBar 放在 UISplitViewController 上方?

如何将视图控制器推送到 UISplitViewController

不能将 UISplitViewController 放在 UITabBarController 内

UISplitViewController - 带有 UINavigationController 的多个细节视图

Ios:如何将数据传递给 UISplitViewController?

如何将 UIToolbar 添加到 UISplitViewController 的两个视图中?