我使用ViewController
中的按钮转到TableViewController
。在TableViewController
中,我创建了int
NInt1。但是当我去TableViewController
时,条件不起作用。
ViewController.m
- (IBAction)Button:(id)sender {
MasterViewController *trns =[[MasterViewController alloc]init];
[_Button.titleLabel.text isEqualToString:@"1"];
trns.NInt1=1;
}
TableViewController.m
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(_NInt1 == 1){
return 5;
}else{
return 20;
}
}
答案 0 :(得分:1)
如果您正在使用该故事,请传递如下值:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
RecipeDetailViewController *destViewController = segue.destinationViewController;
destViewController.NInt1 = 1;
}
现在在目标视图控制器的viewDidLoad中查看NInt的值。
答案 1 :(得分:0)
我认为您需要修改
- (IBAction)Button:(UIButton *)sender {
MasterViewController *trns =[[MasterViewController alloc]init];
if [sender.titleLabel.text isEqualToString:@"1"]{
trns.NInt1=1;
}
}
对tableviewController
viewDidload检查,例如使用NSLog
对象是1
还是
答案 2 :(得分:0)
如果您使用情节提要,则不会从IBAction
创建目标视图控制器。它可以轻松验证:您永远不会推送或显示新创建的视图控制器,这是您方法中的本地视图控制器。
而是使用Jaimish回答中描述的prepareForSegue
方法。
答案 3 :(得分:0)
我尝试了解决方案。最后我得到了。谢谢。条件现在已经有效了。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"goTableViewController"])
{
TableViewController *tableVC = (TableViewController *) segue.destinationViewController;
tableVC.NInt1 = 5;
}
}