我几乎可以肯定有一天我看到有一些属性可以设置一个较短的viewController名称,当它按下另一个viewController并成为后面的viewController时,它会显示在后退按钮中.有人可以提醒我这个属性是什么?
objective-c back-button uiviewcontroller uinavigationcontroller ios
我知道如何禁用后退按钮,但不能在弹出窗口期间禁用.
syncb=(Button) findViewById(R.id.SyncB);
syncb.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
final Dialog dialog = new Dialog(Scouting.this);
dialog.setContentView(R.layout.popup);
dialog.setTitle("Popups ftw");
dialog.setCancelable(true);
//I think I'd put the code here...
Button button = (Button) dialog.findViewById(R.id.closePopup);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一切
@Override public void dialog.onBackPressed() { }
Run Code Online (Sandbox Code Playgroud)
至
@Override dialog.onBackPressed({});
Run Code Online (Sandbox Code Playgroud)
我找不到任何有用的东西.
编辑:通常,它是
@Override public void onBackPressed(){}
Run Code Online (Sandbox Code Playgroud)
而且它通常在主类(不是'嵌套')但是因为我挖了一点......我不是想出来的(尝试,但没有成功).
我是iOS新手,
我正在使用Storyboard为iPhone开发购物App,
这是我的应用程序的快照,
TabBarController 包含4个标签 NavigationController
当我打开Tab1(让我说class1)它包含TableView,onclick of tableview它将带我到Detail page标题和后退按钮NavigationBar(我正在以编程方式添加标题和后退按钮ViewWillAppear method)之后,当我点击后退按钮我正确导航到上一页,这工作得很好..
我的问题是当我打开Tab1(即class1)并且当我Detail page在tableview中选择一行后导航到a Detail page,BackBtn并且将在NavigationBarbcoz中添加标题ViewWillAppear method将被调用,当我Tab2在击中Backbtn之前点击时,我导航到类Tab2当我回来时Tab1,现在我点击后退按钮我正在导航到我的前一页Tab1 class(即class1),但在class1 后面按钮和标题Detail page是我的,class1我无法隐藏它...
你可以在第二张图片中看到BackBtn并且Title在Class1...
有什么问题 ?
我的asp .net应用程序面临一个问题,即注销用户使用浏览器的后退按钮重新访问以前访问过的页面.用户无法执行任何服务器端事件,但如果不允许用户查看此页面会更好.我搜索了一个解决方案来阻止这个,但大多数解决方案包括在页面内编写代码,必须不像这样重新访问.
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
string sb;
sb = "<script language=javascript>\n";
sb += "window.history.forward(1);\n";
sb += "\n</script>";
ClientScript.RegisterClientScriptBlock(Page.GetType(), "clientScript", sb);
}
Run Code Online (Sandbox Code Playgroud)
这意味着我必须在登录用户可以访问的每个页面中编写代码.有没有更好的方法来处理这个问题?我期待一个优化的解决方案,我不必在每个页面编写代码.将非常感谢帮助.
像这样问了很多问题,但是我尝试过的一切似乎都不起作用。本质上,我有一个主要活动,该活动根据用户单击的内容(默认为home片段)来调用不同的片段。我想在标题栏上有一个后退按钮,以返回上一个片段。
我的片段是从主要活动中调用的,如下所示:
Fragment fragment = null;
fragment = new nextFragment();
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame_container, fragment).addToBackStack(null);
fragmentTransaction.commit();
fragmentTransaction.addToBackStack(null);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
Run Code Online (Sandbox Code Playgroud)
但是由于不赞成使用ActionBarActivity活动,因此我需要扩展AppCompatActivity而不是FragmentActivity,以便可以使用actionbar(我假设这是我需要的)。但是,然后我无法切换到我的片段。因此,有人知道我如何在片段中实现后退按钮,或者在这种情况下如何使用AppCompatActivity。谢谢你的帮助。
android back-button android-fragments android-fragmentactivity
我正在使用Tab Bar Controller,上面有2个视图控制器。在此之前,我还有另一个viewController来访问选项卡栏。当我看到标签栏时,后退按钮总是消失。我想隐藏后退按钮,并使用另一个按钮作为左按钮,但是我无法隐藏后退按钮。
这是viewController中Tab栏之前的代码:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "mainvc"{
if pinLabel.text == pinPassword && pinLabel.text != ""{
let tabBarController = segue.destination as! UITabBarController
let destinationViewController = tabBarController.viewControllers?[0] as! ViewController
destinationViewController.login.email = login.email
destinationViewController.login.firstname = login.firstname
destinationViewController.login.lastname = login.lastname
destinationViewController.login.imageURL = login.imageURL
destinationViewController.login.id = login.id
}else{
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我要隐藏后退按钮并将另一个按钮放入视图控制器之一的代码,这是我在访问选项卡栏控制器时看到的视图控制器:
let leftOpenSideBarMenu: UIBarButtonItem = UIBarButtonItem(image: myimage, style: .plain, target: self, action: #selector(ViewController.openSideBarMenu))
self.navigationItem.setHidesBackButton(true, animated: false)
self.navigationItem.setLeftBarButtonItems([leftOpenSideBarMenu], animated: true)
Run Code Online (Sandbox Code Playgroud) 当页面1从页面2返回时,我使用拦截器https://pub.dartlang.org/packages/back_button_interceptor执行一种方法。
如果使用设备后退按钮从第2页返回第1页,则将执行该方法。
但是,如果我使用appBar上的箭头按钮从第2页返回第1页,则无法执行该方法。
后退按钮功能如何默认为设备后退按钮?
我试图建立我的自定义SEGUE,在行为标准推SEGUE相似,但在我的情况下,我想使用自定义按钮屏幕间切换(无标签栏会适合这个应用程序,任何模式赛格瑞是没有好或者) .主屏幕是自定义图形,屏幕是一个地图.用户选择地图上的点,点击完成并返回主屏幕及其坐标.我正在尝试将ViewControllers与自定义segue连接起来.
我在互联网上研究了很多解决方案并找到了一个可以适应的解决方案,但代码分散在ViewControllers和AppDelegate周围(我不确定Apple是否会接受它).我正在尝试将整个代码放到CustomSegue.m/h.成功是部分的,因为使用技术(下面)它会分割到第二个ViewControler,但我无法弄清楚如何解除第二个并回到主屏幕.我尝试了各种技术,但是当我运行它时,编译器会终止带有大量错误的应用程序.在构建和运行之前既没有错误也没有警告.我还尝试使用[self dismissModalViewControllerAnimated:YES]按钮解除它; 或[self dismissViewControllerAnimated:YES completion:nil]; 当我尝试模态segues但我的代码结果不好时,它们会工作.
有没有人有一个简洁的方法来做这个.我在最近几天堆积了这个问题.我看到很多应用程序中的那种segues转换,所以它似乎非常流行,简单的解决方案.我对Xcode只有几个月的经验不多.这是我的自定义segue(使用QuartzCore动画).
#import "CustomTabBarSegue.h"
@implementation CustomTabBarSegue
-(void)perform {
UIViewController *src = (UIViewController*)[self sourceViewController];
UIViewController *dst = (UIViewController*)[self destinationViewController];
UIView *currentView = src.view;
UIView *theWindow = [currentView superview];
UIView *newView = dst.view;
[theWindow addSubview:newView];
CATransition *transition = [CATransition animation];
transition.delegate = self;
transition.duration = 1;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromRight;
[[theWindow layer] addAnimation:transition forKey:@"MySegue"];
}
@end
Run Code Online (Sandbox Code Playgroud)
下面是来自destinationVC的我的按钮的代码.(不起作用)
- (IBAction)dismiss:(id)sender
Run Code Online (Sandbox Code Playgroud)
{
[self dismissViewControllerAnimated:YES completion:^() {
[self performSegueWithIdentifier:@"MySegue" sender:self];
}];
Run Code Online (Sandbox Code Playgroud)
}
在我的MVC spring应用程序中,我使用GET方法将表单发送到页面以执行搜索.搜索结果是一个列表,并且每个条目都可以导航到详细信息页面.它工作正常.现在,我希望在详细信息页面上有一个后退按钮,它应该返回到搜索列表.
我可以调用相同的控制器方法来重新评估,但它执行数据库调用,我不想这样做.什么是最好的解决方案?
我正在构建一个由3个活动组成的新应用程序,即: - 启动画面 - 活动A - 活动B,以及 - 活动C.
来自活动用户可以进行以下两项活动:
A - > B - > C(来自行为A用户可以转到B然后转到C).A - > C(来自行为A用户可直接进入C).B - > C(来自B用户可以转到C).
我还在活动之间传递Serializable intent Extra.
我遇到的问题是每当我按下操作栏(左上角)上的后退按钮时,它总会使我的应用程序崩溃(错误:NULL指针异常).
我试图将此代码放在我的所有活动上.
@Override
public void onBackPressed() {
this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
}
Run Code Online (Sandbox Code Playgroud)
我尝试以某种方式模仿物理后退按钮行为,因为当用户按下物理后退按钮时它正在工作.但也有点抛出错误.
要么
public void onBackPressed(){
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
或者(这一个字面上重新启动应用程序,这是不鼓励的,因为它从启动屏幕重新启动应用程序).
public void onBackPressed(){
super.onBackPressed();
finish();
}
Run Code Online (Sandbox Code Playgroud)
有谁知道实现后退按钮的适当方法?
back-button ×10
android ×3
ios ×3
iphone ×2
asp.net ×1
c# ×1
flutter ×1
java ×1
objective-c ×1
popup ×1
segue ×1
spring ×1
spring-mvc ×1
storyboard ×1
swift ×1
xcode ×1