确定。这是一个挑战。
我在导航控制器中有一个tableview。
我从root用户推送它,在那里我有一个允许我添加新记录的添加操作。这很好。
现在我尝试做的是将此tableview添加到标签栏视图(没有标签栏控制器,因为它不起作用)但在同一个导航控制器中。
所以我想做的是:Root> TabBarView(加载Tableview)>添加新记录。
问题在于托管对象上下文,我得到了整个“无法找到实体错误”,但我不知道如何解决它。
我已经设法从tabBarView中显示AddRecord模式视图控制器,但是它没有导航栏,而如果我尝试在单独的tableView中添加记录(在tabbar之外)它没问题
我现在从TabBarView的navigationBarbuttons调用我的方法,路由到tableviews方法。
我知道我的方法必须从tabBarView而不是现在的实际tableview调用,并且它们会触发,但我不知道如何在tabView中管理MOC。
哦,这是基于coredata配方和书籍,因此当激活添加记录方法时,它会创建一个新的MOC来创建它,然后在完成后重新集成到主MOC中。
有什么想法吗?
答案 0 :(得分:0)
就主要的MOC而言,视图和控制器应该是无关紧要的。在您使用的任何控制器中获取对MOC的引用,并使用该MOC进行操作。如果您的应用程序委托创建主MOC,请将其作为该委托的属性,并从您的视图或选项卡控制器访问该属性。
我不太关注你所遇到的导航问题,但如果你需要导航栏时没有导航栏,我怀疑你需要在你添加UIViewController子类的地方创建和添加UINavigationController。使子类成为新UINavigationController的根,并将控制器放入选项卡或其他任何内容。
您的托管对象上下文(MOC)不应依赖于导航或视图。它是模型的一部分。 (尽管如您所知,可取消编辑视图的第二个MOC 将依赖于导航到您创建它以供编辑器使用的范围。)
答案 1 :(得分:0)
听起来你有几个问题。
navigationItem
用于填充导航栏。将视图控制器显示为工作表时,仅显示视图控制器。它未嵌入导航控制器中。为了显示导航项,您需要创建一个以视图控制器为根的新导航控制器,然后显示导航控制器的视图。