ios tableview动态原型在情节提要中不起作用

Posted

技术标签:

【中文标题】ios tableview动态原型在情节提要中不起作用【英文标题】:ios tableview dynamic prototype doesn't work in storyboard 【发布时间】:2013-06-10 18:17:14 【问题描述】:

我是 Objective-C 的新手,并遵循 Apple 关于如何使用 tableView 和 detailsView 创建简单应用的教程:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/SecondiOSAppTutorial/SecondiOSAppTutorial.pdf

我只是通过使用不同的名称并将其嵌入到选项卡式应用程序中来与说明不同。

我将我的代码与教程中显示的代码进行了两次比较,结果相同...

我也在网上搜索了两天,试图找到这个问题的答案。我发现的唯一一件事是,很多人在尝试将动态原型与故事板一起使用时遇到了问题,但是,通常没有任何答案,如果有的话,对我的情况也没有帮助。

我发现的另一件事是,在加载应用程序或显示视图时,既没有调用 viewDidLoad 方法,也没有调用 awakeFromNib 方法。我看到了其他关于它的问题,但是没有答案。

非常感谢您的帮助!

谢谢! 希拉

相关代码: 数据控制器初始化:

@interface MMMeetingDataController ()

-(void)initializeDefultDataList;

@end

@implementation MMMeetingDataController

-(void)initializeDefultDataList

    NSMutableArray *meetingList = [[NSMutableArray alloc] init];

    self.masterMeetingList = meetingList;

    MMMeeting *meeting;

    NSDate *today = [NSDate date];

    meeting = [[MMMeeting alloc] initWithSubject:@"Default" invitees:@"Default" location:@"My Office" date:today];

    [self addMeetingWithSubject:meeting];


TableViewController(列表):

@implementation MMMeetingsListViewController

-(void)awakeFromNib

    [super awakeFromNib];

    self.dataController = [[MMMeetingDataController alloc] init];


-(void)viewDidLoad

    [super viewDidLoad];   

-- 调试中没有调用上述两个函数...

【问题讨论】:

没有您的代码我们应该如何提供帮助? 代码与教程中的相同...这是更具体的位置:developer.apple.com/library/ios/#documentation/iPhone/…>如果您希望查看我的代码,请告诉我。 @shila 告诉我们您已按照教程进行操作,然后将我们链接到 101 页的文档并没有多大帮助... 好的,抱歉,我是新手...您希望我添加代码的哪些部分?我有一个数据控制器,tableView 控制器和 detailesView 控制器。 是的,请添加您的代码(相关部分,即与教程不同的部分)。此外,检查项目设置中是否设置了正确的故事板,以及故事板的根视图控制器的类是否设置为您的自定义类。 【参考方案1】:

打开您的故事板,单击您的视图控制器(应选择表格视图下方的黄色圆圈图标,请参见屏幕截图),并确保将自定义类字段设置为您的视图控制器的名称(MMMeetingsListViewController )。

【讨论】:

我调试了苹果提供的默认MasterDetail模板,那里调用了awakeFromNib。也许是因为出于某种原因我正在使用选项卡式应用程序,所以没有调用 awakeFromNib?有没有人尝试在情节提要中使用这种方式? “标签式应用程序”是什么意思? 当我创建一个新项目时,我选择了一个选项卡式应用程序,而不是 Master Details 应用程序。然后我向其中一个控制器添加了一个 tableView。我认为那里的某个地方是我的错误。正确的做法是选择一个 Master Detail 应用程序,然后将其嵌入到选项卡导航中? 没有没有。选项卡式应用程序应该可以正常工作。同样,如果您的视图控制器的awakeFromNib 没有被调用,这意味着它没有在您的故事板中正确设置,并且iOS 实例化默认的UIViewController 类而不是您自己的类。也许在您的问题中添加几个故事板的屏幕截图。【参考方案2】:

问题解决了。由于我使用的是选项卡式应用程序并手动添加了 tableView 控制器,因此我也应该将它嵌入到导航栏中。一旦我将 tableView 控制器嵌入到导航栏中,问题就解决了。

【讨论】:

以上是关于ios tableview动态原型在情节提要中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

模拟器中表格视图的起始位置错误,并且在情节提要中不一样

UITableView 分隔符插入参考在情节提要中不起作用

UIImage 上的 TapGestureRecgonizer 在情节提要设置中不起作用

带有 DiscreteObjectKeyFrame 的情节提要在 windows phone 8 中不起作用

Xamarin iOS:从情节提要中的 UICollectionViewCell 获取信息

在笔尖而不是情节提要中制作原型单元