多次页面跳转后pop回主界面的问题

 

最近写代码的时候出了点BUG, 查阅资料后终于解决了. 问题原因大概是: 项目中所有的viewController都是继承自一个封装好的viewController. navigationbar, navigationbaritem所有的方法都是大神自己写的.所以pop回主界面不知道怎么的会跳转到登录界面, 下面说我解决的方法: 

比如先从A界面跳到B界面,再从B界面跳到C界面,最后需要从C界面直接跳转到A界面,在这里我讲讲解直接从C界面跳转到A界面的方法。在iOS开发中,我们通常用得最多的页面跳转方式就是通过NavigationBar的push和pop跳转方法,下面这种跳转方法也是基于NavigationBar的跳转方法。因为NavigationBar跳转时候实际是将各个页面放在一个栈里面,需要往上层跳转时候只需要遍历一遍栈,找到自己想跳转的那个页面。

HomeViewController *homeVC = [[HomeViewController alloc] init];
                  UIViewController *target = nil;
                  for (UIViewController * controller in self.navigationController.viewControllers) { 
                      if ([controller isKindOfClass:[homeVC class]]) {
                          target = controller;
                      }
                  }
                  if (target) {
                      [self.navigationController popToViewController:target animated:YES]; 
                  }

 

转载于:https://www.cnblogs.com/Cheetah-yang/p/4835522.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的 Python 登录页面的示例代码,并且完成跳转到主界面的功能。 首先,您需要安装 Flask 模块。可以使用以下命令进行安装: ``` pip install flask ``` 接下来,您可以使用以下代码实现简单的登录页面并完成跳转: ```python from flask import Flask, render_template, request, redirect, url_for app = Flask(__name__) @app.route('/') def index(): return render_template('login.html') @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] if username == 'your_username' and password == 'your_password': return redirect(url_for('main')) else: return render_template('login.html', error='Invalid username or password') @app.route('/main') def main(): return render_template('main.html') if __name__ == '__main__': app.run(debug=True) ``` 在代码中,我们首先定义了三个路由函数: - `/`:用于显示登录页面; - `/login`:用于处理用户提交的登录表单,并验证用户名和密码是否正确; - `/main`:用于显示主界面。 在 `/login` 路由函数中,我们首先使用 `request.form` 获取用户提交的表单数据,然后进行用户名和密码的验证。如果验证通过,则使用 `redirect(url_for('main'))` 跳转到主界面。如果验证不通过,则再次显示登录页面,并显示错误信息。 在 `/main` 路由函数中,我们使用 `render_template` 函数显示主界面。 最后,在 `if __name__ == '__main__'` 语句中,我们使用 `app.run()` 启动应用程序。 在运行应用程序之前,您还需要创建两个 HTML 模板文件 `login.html` 和 `main.html`,分别用于显示登录页面和主界面。例如,可以创建一个简单的 `login.html` 文件如下: ```html <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> {% if error %} <p>{{ error }}</p> {% endif %} <form action="/login" method="post"> <label>Username:</label> <input type="text" name="username"><br> <label>Password:</label> <input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html> ``` 和一个简单的 `main.html` 文件如下: ```html <!DOCTYPE html> <html> <head> <title>Main</title> </head> <body> <h1>Welcome to Main Page</h1> </body> </html> ``` 保存以上代码,并在终端中运行应用程序,即可访问登录页面。在输入正确的用户名和密码后,将跳转到主界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值