从“用户体验”的角度来看,我很有趣禁用后退按钮并在某些条件变为真时显示另一个按钮?
示例我有 3 个视图 A、B、C。一开始条件 = false。我去 A -> B。我在 B 中改变了一些东西,条件变为真。在这种情况下,我想禁用返回视图 A 的可能性并启用转到视图 C 的可能性。
所以我的问题是我该怎么做?隐藏后退按钮并在此位置上显示按钮,可以转到视图 C?或者只是禁用后退按钮并启用我转到 C 的按钮?
从“用户体验”的角度来看,我很有趣禁用后退按钮并在某些条件变为真时显示另一个按钮?
示例我有 3 个视图 A、B、C。一开始条件 = false。我去 A -> B。我在 B 中改变了一些东西,条件变为真。在这种情况下,我想禁用返回视图 A 的可能性并启用转到视图 C 的可能性。
所以我的问题是我该怎么做?隐藏后退按钮并在此位置上显示按钮,可以转到视图 C?或者只是禁用后退按钮并启用我转到 C 的按钮?
这对导航控制器来说不是很好的用途。像这样从用户手中夺走控制权绝不是一个好主意。允许他们以某种方式取消他们的选择。它也不是导航控制器的正确比喻。
在没有导航控制器的情况下执行此操作的一种方法是在做出选择时显示一些以前隐藏的控件。查看设置应用程序,例如日期和时间,它会在做出选择时显示更多 UI。
正如@nevanking 所说,我也相信这对用户来说不是一个好的体验,但如果你需要它怎么办。
如果您使用UIButton
带有“Back”之类标题的 a,或者如果您的条件为“Go to c”,那么您必须针对特定条件维护其标签,因此通常IBAction
您可以检查特定条件并执行 pop或推。即使您将图像用于“Back”和“Go to c”选项,您也可以这样做。
#define BACK_BUTTON_TAG 1
#define PUSH_BUTTON_TAG 2
请根据您的情况设置标签,btn.tag = BACK_BUTTON_TAG;
或者btn.tag = PUSH_BUTTON_TAG;
-(IBAction) doWhatIChoose {
if(btn.tag == BACK_BUTTON_TAG) {
//pop to A
}else{
//push to C
}
}
请注意,您必须维护推送的视图控件堆栈,从 C 开始,您必须让用户选择 popToRoot(即 A)或返回(即 B),并且必须保持按钮状态。
不。用户希望按钮能够工作,而 BACK 就像一个安全网——它必须在那里。
我一般不喜欢禁用按钮,但如果您使用它们,禁用按钮仅在您前进时才有意义,例如,下订单或进行一系列操作。
请注意,在某些情况下,“返回”按钮在 iOS 中是可以接受的,但绝不会出现在左上角。仅当您有自定义 UI(例如,一系列点)时才会出现这种情况,并且早期的模式将不再具有访问意义。