我有菜单类,我有另一个 View ,我想在另一个项目中更改菜单类标题项目,我的代码在这里。
菜单项文件。
public class MediumMenuItem: NSObject {
public var title:String?
public var completion: completionHandler?
override private init() {
super.init()
}
public convenience init(title: String, completion: completionHandler) {
self.init()
self.title = title
self.completion = completion
}
}
配置文件
var title1 = ""
var title2 = ""
var title3 = ""
View Controller
class NavigationController: UINavigationController {
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
var menu: MediumMenu?
override func viewDidLoad() {
super.viewDidLoad()
let myURL: NSURL! = NSURL(string: "http://bla.com/title_api.php")
let request: NSMutableURLRequest = NSMutableURLRequest(URL: myURL!)
request.HTTPMethod = "POST"
let postString = "title=1"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("error=\(error)")
return
}else{
if let unwrappedData = data {
let string1 = NSString(data: unwrappedData, encoding: NSUTF8StringEncoding)
let fullNameArr = string1!.componentsSeparatedByString(",")
title1 = fullNameArr[0]
title2 = fullNameArr[1]
title3 = fullNameArr[2]
topURL1 = fullNameArr[3]
topURL2 = fullNameArr[4]
topURL3 = fullNameArr[5]
}
}
}
task.resume()
let item2 = MediumMenuItem(title: title1) {
let topStoriesViewController = storyboard.instantiateViewControllerWithIdentifier("Web1") as! WebViewController1
self.setViewControllers([topStoriesViewController], animated: false)
}
let item3 = MediumMenuItem(title: title2) {
let bookMarksViewController = storyboard.instantiateViewControllerWithIdentifier("Web2") as! WebViewController2
self.setViewControllers([bookMarksViewController], animated: false)
}
let item4 = MediumMenuItem(title: title3) {
let bookMarksViewController = storyboard.instantiateViewControllerWithIdentifier("Web3") as! WebViewController3
self.setViewControllers([bookMarksViewController], animated: false)
}
}
远程 Json 文件输出
New1,New2,New3,http://www.bla.com,http://www.bla.com,http://www.bla.com
Xcode 输出
No error and title1,title2,title3 showing blank in my app ( not showing)
我添加了所有代码我需要你的帮助非常感谢。
最佳答案
在设置标题后,在 session 的响应 block 中为菜单添加 let 声明。当前声明不会获得新标题,因为请求是异步启动的。
这意味着请求正在运行,代码仍在继续执行到最后。
无论如何,你尝试做的事情看起来很奇怪。考虑一个负责调用项目的管理器,并使用 Controller 来调用它。通过响应,您应该创建导航 Controller 并用您的项目填充它。仍然很奇怪,但是 Navigation Controller 是为导航而设计的 ;)
关于ios - Swift 2 如何更改公共(public) var 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32972564/