以编程方式将Segue添加到UIImageView,将其转发到新的ViewController Objective C?

时间:2017-08-23 10:33:13

标签: ios objective-c

我有一个SrollView已经添加了3个视图(view1,view2,view3)。我想以编程方式在view3上添加一个Image。 当您单击图像时,它将转到一个不同的新视图控制器(DestiationViewController)。 之后,我想启用NSUserDefault一次点击动作,这样如果图像被点击一旦它将转到DestinationViewController。在第二次运行时,它将直接转到DestinationViewController。

因为我是初学者,请帮助我真的很难。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

你可以采取两种方式。

  1. 在AppDelegate中检查NSUserDefaults值。如果值为true,则以编程方式更改初始视图控制器。你可以google它。 "如何在iOS中以编程方式更改初始视图控制器"喜欢这个。
  2. 这种方式并不好,但可以满足您的需求。在初始视图控制器ViewDidLoad方法中,检查userDefaults值。如果为true,则显示目标视图控制器。但是在这里你必须提供目标控制器,时间间隔很小。

    [self performSelector:@selector(presentDestination)withObject:nil afterDelay:0.0];

  3. 使用此方法在presentDestination方法中,您可以显示目标屏幕。

答案 1 :(得分:0)

在您的UIImageView点击事件中添加以下代码以打开目标视图控制器:

[self performSegueWithIdentifier:"SegueIdentifier" sender:self];

使用以下方法设置UIImageview clickevent:

UITapGestureRecognizer *newTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myTapMethod)];

[myImageView setUserInteractionEnabled:YES];

[myImageView addGestureRecognizer:newTap];




 -(void)myTapMethod{
        // treat image tap

       NSString *valueToSave = @"destinationVisited";
      [[NSUserDefaults standardUserDefaults] setObject:valueToSave 
forKey:@"preferenceName"];
      [[NSUserDefaults standardUserDefaults] synchronize];

      // Navigate
      [self performSegueWithIdentifier:"SegueIdentifier" sender:self];
    }

添加您可以设置NSUserdefault并在单击图像更新NSUserdefault值并检查应用程序委托的NSUserdefault并根据NSUserdefault值打开目标视图控制器。

根据您的要求,在viewWillAppear或app deleget方法中检查NSUserdefault。

NSString *savedValue = [[NSUserDefaults standardUserDefaults]
    stringForKey:@"preferenceName"];

if(savedValue == @'destinationVisited')
{
    [self performSegueWithIdentifier:"SegueIdentifier" sender:self];
}