我有一个SrollView已经添加了3个视图(view1,view2,view3)。我想以编程方式在view3上添加一个Image。 当您单击图像时,它将转到一个不同的新视图控制器(DestiationViewController)。 之后,我想启用NSUserDefault一次点击动作,这样如果图像被点击一旦它将转到DestinationViewController。在第二次运行时,它将直接转到DestinationViewController。
因为我是初学者,请帮助我真的很难。
提前谢谢。
答案 0 :(得分:0)
你可以采取两种方式。
这种方式并不好,但可以满足您的需求。在初始视图控制器ViewDidLoad方法中,检查userDefaults值。如果为true,则显示目标视图控制器。但是在这里你必须提供目标控制器,时间间隔很小。
[self performSelector:@selector(presentDestination)withObject:nil afterDelay:0.0];
使用此方法在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];
}