2015-10-06 25 views
1

我有菜单类,我有另一个视图,我想在另一个项目中更改菜单类标题项我的代码在这里。Swift 2如何更改公共变量字符串

Menuitemfile。

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 = "" 

视图控制器

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) 

我说我需要你的帮助非常感谢所有代码。

+0

@有任何想法吗? – SwiftDeveloper

回答

1

在设置标题后,请在会话的响应块中重新设置菜单的声明。当前的声明不会得到新的标题,因为请求是异步启动的。

这意味着请求正在运行,并且代码仍在继续前进。

无论如何,它看起来很奇怪你试图做什么。想象一下管理员可以完成调用项目的工作,并使用Controller来调用它。有了这个回应,你应该创建你的导航控制器并填写你的项目。仍然奇怪,但导航控制器是为导航;)

+0

:)是的,我认为所以导航控制器类也有我从那里添加控制器代码:)我认为需要专家代码。仍在等待:-II – SwiftDeveloper

+0

好吧,在响应块中创建你的项目,你应该继续。但是你真正想要的是有人为你或者什么写菜单? –