我是iOS编程的新手,我现在只能理解快速的语言。对于我的应用,我设置了用户,本地和远程通知。本地通知有2个动作,1个用于解除,另一个用于将用户定向到特定的viewController。
我想要显示的特定viewController的viewController层次结构是tabBarController - > (第二个标签)tableViewController - > (众多tablecells之一)viewController
在Richard的建议之后,我用上面的层次结构简化了我的代码。我已经对服务器执行了后台提取以响应远程推送通知,并在创建本地通知之前在本地保存内容以通知用户。我已设法设置到我使用self.window?.rootViewController.selectedIndex = 1
在App委托中的application:handleActionWithIdentifier
引导用户到tabViewController上的正确选项卡的位置。
如果本地通知包含可以使用的索引,我该如何继续选择正确的表格?
编辑: 经过一些修补,我设法得到了我想要显示的viewController。
if var tabb = self.window?.rootViewController as? UITabBarController {
tabb.selectedIndex = 1
var controllers = tabb.childViewControllers
for controller in controllers {
if let navcon = controller as? UINavigationController {
if let tblvc = navcon.childViewControllers.first as? QuestionnaireTableViewController {
tblvc.becomeFirstResponder()
tblvc.moveUserToQuestionnaire(questionID)
}
}
}
}
func moveUserToQuestionnaire(questionID : String) {
var list = questionnaireObj.getQuestionnaireListData()
for item in list {
var selected = item["questionnaire_id"] as! NSString as String
if selected == questionID {
selectedUserID = item["study_id"] as! String
selectedReplyBatchID = item["reply_batch_id"] as! NSNumber
selectedQuestionnaireID = questionID
performSegueWithIdentifier("SelectQuestionnaire",sender:self)
break
}
}
}
如果这是一种正确的使用方法,请通知我。谢谢!希望它也能在这个过程中帮助某人。 =)