条件不起作用

时间:2015-11-30 09:41:39

标签: ios

我使用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;
}
}

4 个答案:

答案 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;
  }
}