Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将managedObjectContext传递给UITabBarController问题

将managedObjectContext传递给UITabBarController问题
EN

Stack Overflow用户
提问于 2011-04-22 13:27:56
回答 1查看 1.5K关注 0票数 1

我正在制作一个基于核心数据的iPhone应用程序,它存储一些数据。

它有一个UITabBarController作为根视图控制器(RootViewController)。应用程序委托给选项卡控制器两个视图控制器-第一个是UIViewController的实例,它代表应用程序的标题屏幕,第二个是用于显示数据的UITableViewController

这是我使用核心数据的第一个iPhone应用程序。我已经读过,构建这类应用程序的正确方法是在应用程序委托中创建和初始化managedObjectModelmanagedObjectContextpersistentStoreCoordinator对象,然后通过引用将managedObjectContext传递给子视图控制器。我就是这么做的。

但是,我没有设法将managedObjectContext对象传递给选项卡条控制器,我在应用程序委托的applicationDidFinishLaunching:中初始化了该控制器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions {
    RootViewController *rootViewController = [[RootViewController alloc] init];
    rootViewController.managedObjectContext = self.managedObjectContext;
    [window addSubview:rootViewController.view];
    [window makeKeyAndVisible];
    [rootViewController release];
    return YES;
}

即使选项卡条正确显示并加载标题屏幕视图控制器,它的managedObjectContext仍然为零。我不知道我做错了什么。我还试图通过向RootViewController添加一个新的保留属性来传递一个字符串。

我的RootViewController.h如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@interface RootViewController : UITabBarController {
@private 
NSManagedObjectContext *managedObjectContext;
}

@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;

@end

我的RootViewController的viewDidLoad方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)viewDidLoad {
[super viewDidLoad];

NSLog(@"%@", self.managedObjectContext);

ObiadViewController *obiadVC = [[ObiadViewController alloc] init];
ObiadListNavController *obiadListVC = [[ObiadListNavController alloc] init];

obiadVC.managedObjectContext = self.managedObjectContext;
obiadListVC.managedObjectContext = self.managedObjectContext;

NSArray *vcs = [NSArray arrayWithObjects:obiadVC, obiadListVC, nil];

self.viewControllers = vcs;

[obiadVC release];
[obiadListVC release];

}

我还检查了应用程序委托中的managedObjectContext没有为零,就在它被传递给RootViewController实例之前。这就像所有RootViewController的ivars都会被重置一样。只有在这个时候才会发生。当我稍后从表视图控制器传递一个字符串到细节视图控制器时,一切都很好。

我希望我说得很清楚。我现在觉得自己很无知。

EN

回答 1

Stack Overflow用户

发布于 2011-04-23 05:26:24

UITabBarController类引用清楚地指出,不应该对UITabBarController进行子类化:

此类不是用于子类的。

在本例中,您可以实例化UITabBarController并在App的applicationDidFinishLaunching中向其添加视图控制器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    tabBarController = [[UITabBarController alloc] init];

    FirstViewController *firstViewController = [[FirstViewController alloc] init];
    SecondViewController *secondViewController = [[SecondViewController alloc] init];

    firstViewController.managedObjectContext = self.managedObjectContext;
    secondViewController.managedObjectContext = self.managedObjectContext;

    NSArray *vcs = [NSArray arrayWithObjects:firstViewController, secondViewController, nil];
    tabBarController.viewControllers = vcs;

    [window addSubview:tabBarController.view];
    [window makeKeyAndVisible];

    [firstViewController release];
    [secondViewController release];

    return YES;
}

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5760243

复制
相关文章
UITabbarController 偶现启动crash问题分析
最近新版本发布后,出现了一个偶现的crash并且迅速增加为Top1,这里对该问题做一个分析。 报错内容如下: NSException -[UITabBarController setSelectedViewController:] only a view controller in the tab bar controller's list of view controllers can be selected. crash堆栈如下:
落影
2022/10/28
8700
vue传递给后端时间格式问题
解释: @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)设定接受前端传递过来的时间格式 @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)注解:把数据库中datetime的格式取出来转化为yyyy-MM-dd HH:mm:ss格式。
知识浅谈
2023/09/07
5220
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.4K0
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
1.9K0
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.2K0
UITabBarController实现Tab切换
在很多的应用中,基本都是使用Tab方式进行模块间的切换。在Android中很多控件可以实现这类效果,TabLayout、TabHost… 而在iOS中系统为我们提供了UITabBarController类来实现Tab页面之间的切换。有几个页面我们就创建几个UINavigationController,然后通过tabbar.viewControllers = @[navi1, navi2, navi3…]; 设置给UITabBarController。在进行Tab切换的设计思想上Android和iOS是
xiangzhihong
2018/02/06
2K0
UITabBarController实现Tab切换
iOS-UITabBarController的基本使用
1.初始化UITabBarController 2.设置UIWindow的rootViewController为UITabBarController 3.根据具体情况,通过addChildViewController方法添加对应个数的子控制器,添加的所有子控制器都保存在TabBarController的childViewControllers数组当中.
Lee坚武
2019/12/12
7210
python中传值和传地址问题
在python中,还没有对这个知识点有一个详细的定义,很模糊的说明了,通过下面代码,可以观察出来,什么时候传的是值,什么时候传的是地址
py3study
2020/01/20
9490
Qs传参数格式问题
PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL
张苹果
2022/09/22
1.2K0
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux中,管道使用竖线符号 | 表示,它位于两个命令之间。管道的基本语法如下:
网络技术联盟站
2023/09/06
1.5K0
如何在Linux中使用管道将命令的输出传递给其他命令?
IOS 菜单栏 UITabBarController 常用
1、创建三个视图控制器 FirstViewController、SecondViewController、ThirdViewController
用户5760343
2019/07/07
1.3K0
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux系统中,管道(Pipeline)是一种强大的工具,它允许将一个命令的输出作为另一个命令的输入。通过管道,我们可以将多个命令串联在一起,实现数据的流动和处理。本文将详细介绍如何在Linux中使用管道将命令的输出传递给其他命令,并提供一些常见的使用示例。
网络技术联盟站
2023/06/14
1.4K0
如何在Linux中使用管道将命令的输出传递给其他命令?
关于checkbox传值问题
最近不知道要写什么了,没有怎么学习新的知识点,而是一直在研究jquery相关的东西,有人说jquery已经快要过时了,很多公司都不用这个框架了,但是我觉得,有些知识,作为基础,还是要多回顾一下,记录一下。今天写了一个简单的功能,将checkbox选中的value值提交到后端。
王小婷
2019/07/10
1K0
关于checkbox传值问题
ASP.NET MVC 5 - 将数据从控制器传递给视图
在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图。控制器类将响应请求来的URL。控制器类是给您写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模板可以被控制器用来产生格式化过的HTML从而返回给浏览器。 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。最佳做法是:一个视图模板应该永远不会执行业务逻辑或者直接和数据库进行交互。相应的,一个视图模板应该只和控制器所提供的数据进行交
葡萄城控件
2018/01/10
5.1K0
ASP.NET MVC 5 - 将数据从控制器传递给视图
LoadRunner参数传递给参数
需求:使用随机函数时,需要参数化某个参数,并且后面的步骤需要使用这个参数。 方法: 1 lr_save_string 该函数主要是将程序中的常量或变量保存为lr中的参数 2 lr_eval_string 从参数中取得对应的值,并且转换为一个字符串 测试: 在action里写: 1 lr_output_message("*****参数:%s********",lr_save_string(lr_eval_string("{NewParam}"),"name")); 2 lr_output_messag
全栈测试开发日记
2023/02/18
2.9K0
传ipad5将更加轻薄小巧
随着apple发布会的临近,有关iPad 5的传言也日渐增加。近日,就有传媒爆出iPad 5的后壳照片。从图片来看,iPad 5将比iPad 4更加轻薄小巧。根据尺寸比例来看,新款iPad边框将会很窄。
reizhi
2022/09/26
2580
传ipad5将更加轻薄小巧
python接口测试:如何将A接口的返回值传递给B接口
一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢
冰霜
2022/03/15
2K0
React篇(029)-如何将参数传递给事件处理程序或回调函数?
你可以使用箭头函数来包装事件处理器并传递参数: <button onClick={() => this.handleClick(id)} /> 这相当于调用 .bind: <button onClick={this.handleClick.bind(this, id)} />
齐丶先丶森
2022/05/12
3.8K0
jQuery的checkbox传值问题
最近不知道要写什么了,没有怎么学习新的知识点,而是一直在研究jquery相关的东西,有人说jquery已经快要过时了,很多公司都不用这个框架了,但是我觉得,有些知识,作为基础,还是要多回顾一下,记录一下。今天写了一个简单的功能,将checkbox选中的value值提交到后端。
王小婷
2020/11/30
2.1K0

相似问题

将managedObjectContext传递到UITabBarController的视图

20

如何在使用ManagedObjectContext时共享UITabBarController

90

managedObjectContext问题

11

如何将ManagedObjectContext传递给TabBarViewControllers

32

managedObjectContext保存问题

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文