【发布时间】:2014-12-10 19:12:45
【问题描述】:
我有一个名为 StackViewController 的表视图控制器,这是我保存在 CreateViewController 中创建的待办事项列表的地方... 我在 StackViewController 中有一个名为 currentTarget 的 NSString 属性,它代表堆栈中的第一个要执行的操作:
import <UIKit/UIKit.h>
@interface StackTableViewController : UITableViewController
@property (nonatomic, strong) NSString *currentTarget;
@end
这个属性保存了表格视图中的第一个 NSString 对象,我是这样理解的:
#import "StackTableViewController.h"
#import "Target.h"
#import "CoreDataStack.h"
@interface StackTableViewController () <NSFetchedResultsControllerDelegate>
@property (nonatomic, strong) NSFetchedResultsController *fetchedResultController;
@end
@implementation StackTableViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.fetchedResultController performFetch:nil];
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection:0];
Target *target = [self.fetchedResultController objectAtIndexPath:indexPath];
self.currentTarget = target.body;
}
现在,当我登录到名为 HomeViewController 的主页时,我想启动 StackTableViewController 并获取其 currentTatget 属性值... 我知道有委托可以帮助您在发生更改时通知其他视图,但在我的情况下,我什至想在进入此页面(StackTableViewController)之前获取此属性值,因为 HomeViewController 是第一个视图控制器已加载(我的初始视图控制器),当我刚刚登录到应用程序并使用它填充标签时,我访问此属性的内容。
我应该怎么做?
我想可能是这样的:
#import "HomeViewController.h"
#import "CreateViewController.h"
#import "StackTableViewController.h"
@interface HomeViewController ()
@property (strong, nonatomic) IBOutlet UILabel *targetLabel;
@end
@implementation HomeViewController
- (void)viewDidLoad {
[super viewDidLoad];
StackTableViewController *vc = [[StackTableViewController alloc] init];
NSString *current = vc.currentTarget;
self.targetLabel.text = current;
}
但我在这里遗漏了一些东西......我的标签没有填充...... 我认为视图生命周期有些问题。
我是新手,请帮我解决这个问题...谢谢
【问题讨论】:
-
我看到了关于在视图控制器之间传递数据的问题,但在那里找不到有助于这个特定场景的东西。
标签: ios objective-c iphone