2016-03-22 13 views
0

インターネット接続をチェックしてメッセージが表示されたら、ここに接続していないとTableviewが表示されます。このテーブルビューを削除または置き換えなければならないと思いますまたはそう最初、私は私がしたように、接続を確認するためにファイルを追加した、唯一つのセルを示し、「インターネットに接続されていない」のようなメッセージが表示され、この:私は、接続を確認する方法を知っているが、ここで私はドンRssインターネット接続を確認してメッ​​セージを表示する

override func viewDidLoad() 
    { 

     super.viewDidLoad() 
     self.navigationController?.navigationBar.barTintColor = UIColor(red: 38.0/255.0, green: 51.0/255.0, blue: 85.0/255.0, alpha: 1.0) 
     self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Gotham", size: 13)!, NSForegroundColorAttributeName : UIColor.whiteColor()] 
     self.title = "ACTUALITÉS" 

     if Reachability.isConnectedToNetwork() == true { 

     self.beginParsing() 

     } else { 
      //Here I'm gonna do something and display an image 
     } 

    } 



    @IBAction func menuTapped(sender: AnyObject) { 
     print(delegate) 
     delegate?.toggleLeftPanel?() 
    } 

    override func didReceiveMemoryWarning() 
    { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func beginParsing() 
    { 
     posts = [] 
     parser = NSXMLParser(contentsOfURL:(NSURL(string:"url..."))!)! 
     parser.delegate = self 
     parser.parse() 

     tableView!.reloadData() 
    } 

    //XMLParser Methods 

    func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) 
    { 
     element = elementName 
     if (elementName as NSString).isEqualToString("item") 
     { 
      elements = NSMutableDictionary() 
      elements = [:] 
      title1 = NSMutableString() 
      title1 = "" 
      date = NSMutableString() 
      date = "" 
      dscrptn = NSMutableString() 
      dscrptn = "" 
      url = NSURL() 
      urlString = NSMutableString() 
      urlString = "" 
     } else { 
      title1 = NSMutableString() 
      title1 = "No connection" 
     } 
    } 

    func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) 
    { 
     if (elementName as NSString).isEqualToString("item") { 
      if !title1.isEqual(nil) { 
       elements.setObject(title1, forKey: "title") 
      } 
      if !date.isEqual(nil) { 
       elements.setObject(date, forKey: "date") 
      } 
      if !dscrptn.isEqual(nil) { 
       elements.setObject(dscrptn, forKey: "dscrptn") 
      } 
      if !urlString.isEqual(nil) { 
       elements.setObject(urlString, forKey: "urlString") 
      } 

      posts.addObject(elements) 
     } 
    } 

    func parser(parser: NSXMLParser, foundCharacters string: String) 
    { 
     if element.isEqualToString("title") { 
      title1.appendString(string) 
     } else if element.isEqualToString("pubDate") { 
      date.appendString(string) 
     } else if element.isEqualToString("description") { 
      dscrptn.appendString(string) 
     } else if element.isEqualToString("link") { 
      urlString.appendString(string) 
     } 
    } 

    //Tableview Methods 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    { 
     return posts.count 
    } 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

     let trimUrl = posts.objectAtIndex(indexPath.row).valueForKey("urlString") as! String 

     UIApplication.sharedApplication().openURL(NSURL(string: trimUrl.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()))!) 
    } 

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     return UITableViewAutomaticDimension 
    } 

    func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     return 10 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    { 
     return basicCellAtIndexPath(indexPath) 
    } 


    func basicCellAtIndexPath(indexPath:NSIndexPath) -> ActuTblCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! ActuTblCell 

     setTitleForCell(cell, indexPath: indexPath) 
     setDateForCell(cell, indexPath: indexPath) 
     setDescriptionForCell(cell, indexPath: indexPath) 
     return cell 
    } 

    func setTitleForCell(cell:ActuTblCell, indexPath:NSIndexPath) { 
     cell.titleActuCell?.text = posts.objectAtIndex(indexPath.row).valueForKey("title") as! NSString as String 
    } 

    func setDateForCell(cell:ActuTblCell, indexPath:NSIndexPath) { 
     let dateFormatter = NSDateFormatter() 
     dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" 
     let dateString = posts.objectAtIndex(indexPath.row).valueForKey("date") as! NSString as String 
     if let dateAdded = dateFormatter.dateFromString(dateString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())) 
     { 
      dateFormatter.dateFormat = "dd/MM/yyyy" 
      cell.dateActuCell?.text = "\(dateFormatter.stringFromDate(dateAdded))" 
     } 
     //cell.dateActuCell?.text = posts.objectAtIndex(indexPath.row).valueForKey("date") as! NSString as String 
    } 

    func setDescriptionForCell(cell:ActuTblCell, indexPath:NSIndexPath) { 
     cell.descriptionActuCell?.text = (posts.objectAtIndex(indexPath.row).valueForKey("dscrptn") as! NSString as String).stripHTML() 
    } 
} 

let  htmlReplaceString : String = "<[^>]+>" 

extension NSString { 
    func stripHTML() -> NSString { 
     return self.stringByReplacingOccurrencesOfString(htmlReplaceString, withString: "", options: NSStringCompareOptions.RegularExpressionSearch, range: NSRange(location: 0,length: self.length)) as NSString 
    } 
} 


extension String { 
    func stripHTML() -> String { 
     return self.stringByReplacingOccurrencesOfString(htmlReplaceString, withString: "", options: NSStringCompareOptions.RegularExpressionSearch, range: nil) 
    } 
} 

」よりよい解決策とそれを行う方法を知りません。

答えて

0

達成したいのは空の状態です。空の状態のアイデアはwww.pttrns.comです。あなたのケースでは、ネットワーク接続がないときに空の状態が表示されます。もう1つのケースは、ネットワーク接続が利用可能な場合ですが、投稿配列にはコンテンツ(XML/JSON)の解析後に項目がゼロになります。

私は、サードパーティのコードを使用することをお勧めいたしますでしょう:

別の方法。私は、背景イメージがデバイス画面のサイズでなければならないことに気付きたい。あなたはそのようにすることができます:

let tempImageView = UIImageView(image: UIImage(named: "yourImage")) 
tempImageView.frame = self.tableView.frame 
self.tableView.backgroundView = tempImageView; 
関連する問題