对象可以在另一个视图控制器中看到吗?

随着时间的推移与Obj-C握手,这很好!对象可以在另一个视图控制器中看到吗?

所以,我会用我的例子,我试图从中学习。我正在使用选项卡式视图控制器。我在页面上一个UIButton这带来了这样一个新的观点:

FilterViewController *ctrl = [[FilterViewController alloc] init]; 

[UIView transitionFromView:self.view toView:ctrl.view duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];

self.filterViewController = ctrl;

[self.navigationController pushViewController:self.filterViewController animated:NO];

现在,让我们说我创建了一个名为TimeFilter类和我初始化它在FirstViewController

TimeFilter *timeFilter = [[TimeFilter alloc] init]; 

[timeFilter saveTime:1300];

在FilterViewController能我只是这样做:

int timeSelected; 

timeSelected = [timeFilter getTime];

我想弄清楚对象在命令行工具,而不是对象的工作方式。

非常感谢!

回答:

FilterViewController只要定义一个属性:

@property (nonatomic, span) timeFilter; 

然后,你可以提出它之前在您的视图控制器分配timeFilterFilterViewController

TimeFilter *myTimeFilter = [[TimeFilter alloc] init]; 

[myTimeFilter saveTime:1300];

FilterViewController *ctrl = [[FilterViewController alloc] init];

ctrl.timeFilter = myTimeFilter;

内。然后FilterViewController你可以这样做:

int timeSelected = [self.timeFilter getTime]; 

并且不要使用transitionFromView:toView:duration:options:completion:来显示您的新视图控制器。达到你想要什么正确的方法是:

ctrl.modalTransitionStyle = UIModalTransitionStylePartialCurl; 

[self presentViewController:ctrl animated:YES completion:nil];

回答:

是ü可以做这样的事情和我只好方式:

1)可以使那些方法-class方法,那么,你也会不需要创建对象。

+(id)getTime 

,并从任何地方调用它

[TimeFilter getTime]; 

2)可以使TimeFilter单身

+(TimeFilter*)shared 

{

static TimeFilter *kTimeFilter = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

kTimeFilter = [TimeFilter new];

});

return kTimeFilter;

}

,并在代码中调用

[[TimeFilter shared] getTime]; 

以上是 对象可以在另一个视图控制器中看到吗? 的全部内容, 来源链接: utcz.com/qa/258279.html

回到顶部