- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我知道这是一个模糊的概念性问题,但我真的需要帮助。如果您决定花时间阅读本文,请提前致谢。我什至不会考虑写这么多,除非这是一个非常棒的论坛,有这么多乐于助人的人,我认为这是最好的提问地点。
这都与这里的问题有关(您不必看它-我在下面解释了所有内容):Pass parameter when initializing table
我已经在同一个问题上工作了好几天,但我意识到一定有一些重要的东西我遗漏了。我在谷歌上搜索和搜索,几天前我什至买了(大约 50% 的人阅读了)两本 Obj-C 书籍,但我仍在掌握一些看起来应该非常容易的东西。我显然是 OOP 的新手,但我在 HTML、perl、sql、python 以及一些古老的东西(如 pascal 和 basic)方面的技能一般。我是 n00b,但不是白痴(嗯,实际上这次经历正在改变我的想法)。
无论如何,我的最终目标是在第一个 View (级别 1)上简单地创建一个带有 8 个“普通”按钮的应用程序,每个按钮基本上都做同样的事情 - 即显示一个简单的表格 View (级别 2),其中包含数据可以单击以继续深入查看详细信息的单元格(级别 3)。非常基本和直接的概念。 8 个可能的 2 级之间的唯一区别是将显示的数据。我已经为每个按钮构建了按我想要的方式工作的 sql 查询。
所以,这就是我的立场:我有一个完美运行的应用程序,它可以完全按照我的预期执行从 2 级到以下的所有操作 - 查询有效,表格很漂亮 - 这太棒了。
此外,我还有另一个基于导航的应用程序,它在“级别 1”上启动并显示 8 个按钮(我隐藏了级别 1 的导航栏)。如果我单击级别 1 上的任何按钮,级别 2 View (即导航栏 + 表格)将完全按照我的意愿滑入 View 。问题是表格是空白的。无论我做什么,我都无法在第二个应用程序中获得级别 2 来显示数据,即使我可以在第一个应用程序中完美显示所有数据。对于我的生活,我无法弄清楚如何将级别 1 与级别 2“联系起来”。
希望你能理解我试图弥合的这个差距。由于级别 2 有 8 种可能性(在同一个 sql 表上的 sql 查询只有很小的差异),我最初尝试提出一种将整数“传递”到级别 2 View 的方法(在第一个应用程序中)和然后根据传递的内容选择 sql 查询(有关该惨败,请参阅上面的链接)。一旦我开始工作,我计划在以后弄清楚如何让按钮进行“传递”。然而,在搞砸了大约 16 个小时之后,我放弃了并决定制作 8 个不同的表 View Controller ,除了查询之外,所有的代码几乎相同。那样的话,如果我能在第 1 级上获得一个单一按钮,只需按到第 2 级中的一个而没有参数,我将成为一个可怕但成功的程序员。
不幸的是,即使这对我来说也没有奏效。我已经尝试了在 Interface Builder 中我能想到的所有可能的控制拖动和窗口/ View /表格组合,但无论我尝试什么,数据都永远不会加载到表格 View 中,即使它在我的第一个应用程序中运行良好。我已经完成了每一行代码 - 它们是相同的,除了必须“调用”或“启动”第 2 级部分,而我就是不明白。
所以,我将打破这里的惯例/期望,而不是在我的问题中发布任何代码。我只想知道——这怎么可能这么难??我非常善于分析,而且很快就跟上了,但我不得不说,我一生中从未因技术挑战而如此谦卑。
谁能在概念层面向我解释我需要在这里做什么或我缺少什么?即使你给我一个可以阅读的链接,我也会非常感激。我已经在 youtube 上观看了数十个小时的教程,但我总是期待更多。
当然,我愿意分享我的代码,但是代码太多了,而且我对此很陌生,我真的不知道相关部分在哪里。另外,我实际上想了解所有这些是如何运作的,以便我可以帮助他人。如果这里有像 PM 这样的东西,如果你愿意看一看,我会通过电子邮件发送给你。一旦我得到它的工作,我会在这里发布代码。我必须相信还有其他人在寻找和我一样的东西。然而,更重要的是,我只想从高层次上知道,解决我的问题的正确方法是什么?如果您查看我的链接,您可以看到我一直在尝试的内容(即向填充表的方法传递一个整数),但正如我所说,我基本上放弃了,因为我什么也没有得到。人们试图帮助我,但我是个白痴。
感谢您忍受我那令人痛苦的长信息。如果你做到了这一点并且对我有一些建议,我会全神贯注。不过,老实说 - 如果你告诉我我应该放弃整个事情并使用核心数据,我会哭的。我真的不认为我有时间找出一种完全不同的数据管理方式。正如我所说,我对我的应用程序的数据库和查询部分感到非常满意 - 它只是管理令人毛骨悚然的 View 并在它们之间传递数据,这让我很伤心!
任何帮助表示赞赏 - 非常感谢大家。
最佳答案
如果我正确理解您的问题,您是在询问如何初始化 View Controller 并传入一些数据以改变其行为。这里要理解的关键概念是对象在 Objective-C 中是如何初始化的。刚接触 iOS 的开发人员最常见的问题之一是:
UIViewController
子类并设置 productID
属性(property)(我们编造的)。让我们调用我们的新 UIViewController
ProductPageViewController
.这是这样的:- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
//Create a ProductPageViewController
ProductPageViewController *ppvc = [[ProductPageViewController alloc] initWithNibName:@"ProductPageViewController" bundle:nil];
//set the property on our ProductPageViewController
[ppvc setProductID:42];
//We would usually present the PPVC here.
//After presenting, remember to release the view controller
}
alloc
,然后 init
. (函数被包装起来——也就是说,我们直接在 init
方法的结果上调用 alloc
。)viewWillAppear
中配置 View 一切都很好。 NSUserDefaults
.然后,新 View 会根据需要读取该值。//A method to store the data
- (void)storeData:(id)pageID{
[[NSUserDefaults setObject:pageID forKey:@"pageID"];
}
- (void)showNewPPVC{
ProductPageViewController *ppvc = [[ProductPageViewController alloc] initWithNibName:@"ProductPageViewController" bundle:nil];
//Show and then release the PPVC
}
initWithNibName:Bundle
方法。您可能还会注意到 UITableViewController
s 使用不同的初始化程序,initWithStyle:
.这两个初始化器接收新对象的一些信息,以便它知道如何加载。我们先来看第一个:- (id)initWithNibName:(NSString *)nibNameOrNil Bundle:(NSBundle *)bundleNameOrNil;
nil
之外,我从未见过任何传入的参数。 .继续看第二个例子:- (id)initWithStyle:(UITableViewStyle)style;
UITableViewStyle
之一这里的值(value)观。这是定义表格 View 样式的一种方式(另一种方式是直接修改 nib 文件)。- (id) initWithProductID:(int)productID;
- (id) initWithProductID:(int)productID{
self = [super init];
return self;
}
ProductPageViewController
的初始化副本。 ,但是,它不会从 NIB 加载我们的 UI,或者如果这是一个 UITableViewController
,它不会设置 UITableViewStyle
.让我们先使用 NIB,然后我将展示如何使用 UITableViewController
.所以...- (id) initWithProductID:(int)productID{
self = [super initWithNibName:@"ProductPageViewController" Bundle:nil];
return self;
}
ProductPageViewController
,从 NIB 加载,但它还没有做任何事情。注意我们如何不暴露 NibName
和 Bundle
参数,但我们只是将它们传递给自己。如果你愿意,理论上你也可以公开这些。现在,让我们来看看 productID
并用它做点什么。- (id) initWithProductID:(int)productID{
self = [super initWithNibName:@"ProductPageViewController" Bundle:nil];
if(self){
self.prodID = productID;
}
return self;
}
PPVC
”现在知道 productID
.它可以根据需要查询数据库并对结果进行处理。然后,您可以基于此 productID
运行不同的查询. - (id) initWithProductID:(int)productID andCategoryID(int)categoryID
,但是如果您有五个、六个或五十六个(是的,很多)参数会发生什么?我建议传入参数集合或数组。 UITableView
使用自定义初始值设定项, 你传入一个 UITableViewStyle
而不是 NIB 名称。它可能如下所示: - (id) initWithProductID:(int)productID{
self = [super initWithStyle:UITableViewStyleGrouped];
if(self){
self.prodID = productID;
}
return self;
}
viewDidLoad
和
viewWillAppear
方法。
关于iphone - 我如何 "connect"到 View Controller 的 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6257025/
如果我使用 NSUserDefaults 存储应用程序的设置,是否有任何方法可以使我的应用程序的设置“隐藏”,以免显示在 iPhone 上的常规设置应用程序中?我知道还有其他工具,例如 mySetti
我按照该网站的教程进行操作: http://theappleblog.com/2008/08/04/tutorial-build-a-simple-rss-reader-for-iphone/ 为了制
我通过 localisableString 和仅适用于 NSLocale 方法的不同 xib 更改 iPhone 的语言来完成本地化,但应用程序的要求是通过更改应用程序设置 View 中的语言来本地化
我试图弄清楚 iPhone 是否可以通过无线或蓝牙连接到另一台非 iPhone 设备,但发现了相互冲突的信息。我发现的大部分内容都是在 SDK 3.0 版本发布之前发现的,当时这肯定是不可能的。查看堆
This question already has answers here: Closed 7 years ago. Possible Duplicate: How to detect iPhone
当我在模拟器上运行我的应用程序时,每次都会生成白色的空白屏幕。但是当我在底部黑色 iPhone 按钮退出应用程序后,重新进入应用程序后 View 将可见。然后应用程序照常运行。 但是当我将它加载到我的
我的意思是两台 iPhone 设备应该通过蓝牙或 WiFi 连接,并且一台设备的 UI 应该扩展到另一台 iPhone 设备(不共享屏幕)。我们有办法在 iOS 中执行此操作吗? 最佳答案 Bump
如何通过宏检测设备型号?我使用过类似的东西,但模拟器上的结果总是 IS_IPHONE_5 #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInt
我目前有一个应用程序要求用户维护 VPN 隧道。加载时我检查 VPN 隧道是否可用。 我想知道是否有任何方法可以显示 UIAlertView,单击“确定”后,用户将进入 iPhone 主设置屏幕,以便
我正在开发一个 iPhone 客户端应用程序,它允许用户对各种服务进行评分。无需注册或登录。 要求是用户不能重复对服务进行评分(尽管可以更改其评分)。从目前的情况来看,该应用程序可以被删除、重新安装,
比如说,我点击一个 iphone 应用程序图标,启动时它将创建一个 .app 文件。那么是否可以从该应用程序调用另一个 iphone 应用程序。或者我们可以在该 .app 文件中执行一些操作,例如它将
真的有可能让iPhone静音模式独立于iPhone App吗? 这个应用程序"Talking Carl"让我很困惑。我的 iPhone 处于静音模式。每当我打开这个应用程序时。应用程序声音处于开启模式
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
如果我想编写一些自定义 iPhone 应用程序,但不一定通过 App Store 分发它们,是否可以在不加入 iPhone 开发者计划的情况下实现? 假设我只是想为自己编写一些小实用程序并将其放入我的
人们对 Unity 或 Torque Engine 等游戏引擎有何看法和/或体验?如果您是 iPhone 游戏开发新手,是否值得学习其中一种引擎?这些引擎生成的应用程序与使用 sdk 的 native
您能否在未安装 XCode 开发工具的计算机上分发 iPhone 应用程序以在 iPhone 模拟器中进行测试?可以直接在电脑上安装模拟器进行测试吗? 我有一组测试人员,他们不是开发人员,除了能够运行
我想在我的越狱设备上构建并安装我的应用程序,而无需支付 iPhone 开发者计划所需的 99 美元。我有 Rock 和 Cydia...最简单的方法是什么(如果可能的话)? 谢谢。 最佳答案 这是一个
我想测试一个网站,看看它如何与 iPhone 配合使用,但我没有 iPhone 或 iPod touch。有没有一种方法可以让我在不拥有网站的情况下测试网站的运行情况? 我真正想要的是修复 Stack
简单地说;我的 99 美元能给我带来什么我无法免费获得的东西? 好吧,好吧,听起来是个愚蠢的问题,但苹果网站对我来说并不清楚。 我的预感是,您可以在 99 岁时向应用程序商店提交应用程序,但您可以免费
我是一名注册的 iOS 开发人员。如何将我的 iPhone 应用程序转移到我的个人 iPhone? 最佳答案 用于测试?只需选择您的设备而不是模拟器即可。 关于iphone - 如何将我的 iPhon
我是一名优秀的程序员,十分优秀!