当用户在swift上使用swreveal controller登录或注销时,我需要重新加载表视图菜单吗?

时间:2015-10-22 22:11:56

标签: swift swrevealviewcontroller

我的表格视图菜单上有一个“登录”按钮。当用户触摸时,它会显示我需要的登录视图。当用户成功登录时,重新加载表格视图以隐藏“登录”按钮并显示“帐户”按钮并反复使用swift

2 个答案:

答案 0 :(得分:1)

我不明白你用按钮做什么。我和我的团队通常像菜单项一样使用表格单元格。像这个例子

enter image description here

enter image description here

  • 我定义了一个菜单项数组

    var menuItems = ["Sign in", "My abc", "My def"]

  • 登录功能的代码,删除"登录"并添加"我的帐户"。在我的简单示例中,我使用didSelectRowAtIndex并检查"登录"菜单

      override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    
    // sign in item
       if indexPath.row == 0 && menuItems[0] == "Sign in" {
    
           let alert = UIAlertController(title: "Signing in", message: "Press OK to sign in", preferredStyle: .Alert)
    
           alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))
    
           alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: { (UIAlertAction) -> Void in
    
               self.menuItems.removeAtIndex(0)
               self.menuItems.insert("My Account", atIndex: 0)
    
               tableView.reloadData()
           }))
    
           presentViewController(alert, animated: true, completion: nil)
    
          }
      }
    

希望这有帮助。

答案 1 :(得分:0)

我解决的方法是用viewWillAppear()方法重新加载表视图

class MenuViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    //Since i didnt use UITableViewController...
    @IBOutlet weak var menuTableView: UITableView! 

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        menuTableView.reloadData()
    }
}

其他一些方法可以处理注销,登录和表视图列表项