我正在尝试做一个 ios 应用程序,但我坚持在类之间传递数据。
这是我的第二个应用程序。第一个是通过全局类完成的,但现在我需要
多个类(class)。我尝试了很多教程,但没有奏效或传递的值始终为零。有人可以给我写一个简单的应用程序来演示 IOS 5 中变量的传递。
没什么特别的, Storyboard有 2 个 View Controller ,一个变量。
感谢您的帮助 。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
FirstViewController *fv;
fv.value = indexPath.row;
NSLog(@"The current %d", fv.value);
FirstViewController *detail =[self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
[self.navigationController pushViewController:detail animated:YES];
}
这是我的主 View 中的代码,我需要将 indexPath.row 或我按下的单元格的索引发送到下一个 View
最佳答案
有几件事要做。根据应用程序,您可以向 AppDelegate 类添加一个变量,使其通过共享实例可用于所有类。最常见的事情(我认为)是制作一个单例。为此,您可以创建一个类,例如 StoreVars,以及一个返回对象的静态方法,这使类成为“全局”类。在该方法中,您可以像往常一样初始化所有变量。这样您就可以随时随地联系到他们。
@interface StoreVars : NSObject
@property (nonatomic) NSArray * mySharedArray;
+ (StoreVars*) sharedInstance;
@implementation StoreVars
@synthesize mySharedArray;
+ (StoreVars*) sharedInstance {
static StoreVars *myInstance = nil;
if (myInstance == nil) {
myInstance = [[[self class] alloc] init];
myInstance.mySharedArray = [NSArray arrayWithObject:@"Test"];
}
return myInstance;
}
这将成为一个单例。如果你记得在你的两个 viewController 中导入“StoreVars.h”,你可以像这样访问现在共享的数组;
[StoreVars sharedInstance].mySharedArray;
^
这是一个返回 StoreVars 对象的方法。在 StoreVars 类中,您可以实现任何对象并在静态方法中对其进行初始化。永远记住初始化它,否则,你所有的对象都将是 0/nil。
如果您不是 UINavigationController 的粉丝并且更愿意使用 segues,它会容易得多,但会使您的应用程序相当“凌乱”imo。在 UIViewController 中实现了一个方法,您应该重载:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}
来源:How to pass prepareForSegue: an object
在提出这样的问题之前先做一些研究。阅读一些教程,自己尝试一下,然后提出与您真正想要的相关的问题。不是常人想为你做所有的工作,但有时你很幸运。好像今天。
干杯。
关于objective-c - 在 Xcode 中的类之间简单传递变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10649370/