在PerformSegue之后,活动指示器未加载到ViewController

时间:2018-08-24 07:52:02

标签: ios swift segue activity-indicator

我是Swift的初学者,我的活动指示器有问题。我一直在使用NVActivityIndi​​catorView,直到现在我都没有任何问题。我有一个LoginViewController,一旦用户成功登录,它就会定向到另一个名为ContainerViewController的视图控制器。

LoginViewController:

    self.networkManager.getConfig(url: url) { (success, message, response) in
    self.stopAnimating()
        if success {
            print(response)

            if (response[APIKey.error] == nil){
                StoreManager.mainview = Definition(definitionDict: response[APIKey.definition] as! NSDictionary)

                let logoutContextMenu = ContextMenu()
                logoutContextMenu.displayName = Constants.logout
                logoutContextMenu.viewName = Constants.logout
                StoreManager.mainview.contextmenu.append(logoutContextMenu)

                Endpoints.org = StoreManager.mainview.org

                self.performSegue(withIdentifier: Constants.containerViewController , sender: self)
            }

            else{
                self.authenticate()
            }
        }else{
            print(message)
            self.showToast(message: Constants.commonErrorMessage)
        }

    }

我的问题是,一旦完成查找,在加载API时,我在ContainerViewController中拥有的activityindicator不会显示。只有在用户登录后才会发生这种情况。

在ContainerViewController中,我在viewWillLoad中有一个名为setupUI的函数,它将调用另一个名为viewConfig的函数。在viewConfig函数内部是活动指示器,该活动指示器将在每次加载API时开始进行动画处理。

ContainerViewController:

override func viewDidLoad() {
    super.viewDidLoad()

    self.setUpUI()
}

func setUpUI(){
    switch StoreManager.mainview.menuLayout.mobile {
    case Constants.dashboardmenu:
        setUpSideBarMenu()
        if (otherViewNameSelected){
            print(selectedViewName)
            if selectedViewName == ""{
                selectedViewName = StoreManager.mainview.solutions[0].views[0].viewName
            }
            self.getViewConfig(solutionName: StoreManager.mainview.solutions[0].solutionName, viewName: selectedViewName)
        }

        break

    default:
        self.navigationItem.leftBarButtonItem = nil
        break
    }
}

func getViewConfig(){
    let url: String =  Endpoints.view + Endpoints.version + Endpoints.org + "/" + solutionName + "/" + Endpoints.views + viewName + Endpoints.token
    startAnimating()
    networkManager.getConfig(url: url) { (success, message, response) in
        self.stopAnimating()
        if success {
            self.parseViewConfig(response)
        }else{
            print(message)
        }
    }
}

parseViewConfig是一个带有tableView的函数,该函数在其中加载数据。

一旦用户登录并显示ContainerViewController,如何显示活动指示器?

1 个答案:

答案 0 :(得分:1)

尝试一下

var form = input.closest('form');
form.addEventListener('submit', function(e) {
  e.preventDefault(); // important, otherwise the page will reload
  /* your code */
});