gpt4 book ai didi

ios - 如何判断用户是按下还是完成?

转载 作者:行者123 更新时间:2023-11-28 17:31:51 25 4
gpt4 key购买 nike

我有一个“创建新事件”页面,用户可以在 UINavigationController 上单击“返回”或“完成”来创建新事件。之后两者都指向同一页面。

如果我的用户按下“完成”,保存在 Controller 中的当前对象将通过 saveChanges 保存。但是,如果用户决定放弃它,即使他/她正在编辑,我也需要清理该用户在此事件的生命周期内生成的静态文件。

我唯一的问题是我无法区分用户是按“完成”还是“取消”。

- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];

// If user has left this page by either pressing 'Done' or 'Cancel'
if (![[self.navigationController viewControllers] containsObject:self]) {
// If this event is NOT saved aka 'Cancel' is pressed.
if (![event isUpdated]) {
// It is important that we only delete videos associated when isNew.
if (isNew) {
NSURL *url = [self getMovieUrl:event.uuid];
[self deleteMovieByUrlIfExists:url];
}
self.event = nil;
}
}
}

- (IBAction)done:(id)sender {
[self.view endEditing:YES];
if (isNew) {
event.eventType = eventTypeInput.text;
event.targetId= [NSNumber numberWithInt:[targetIdInput.text intValue]];
event.game = game;

BOOL success = [[DataStore singletonInstance] saveChanges];
if(success) {
NSLog(@"Success: Event %@ saved. hasVideo:%d", event.uuid, [event.hasVideo intValue]);
// TODO [newEvent upload];
// Also upload the video if possible.
}
}
[self.navigationController popViewControllerAnimated:YES];
}

上面的代码不起作用。当用户按下“完成”时,仍会调用 deleteMovieByUrlIfExists:url。任何人都知道为什么?

======isNew 就是这样设置的。

- (void)initWithEvent:(id)sender event:(Event *)ev { 
isNew = !ev;
if (isNew) {
event = [[DataStore singletonInstance] createEvent];
} else {
event = ev;
}
}

最佳答案

显然,无论用户采取什么操作,[event isUpdated]isNew 始终具有相同的值。在 done: 中设置一个标志(例如 BOOL ivar)并在 viewWillDisappear: 中检查标志的值。

关于ios - 如何判断用户是按下还是完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10967440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com