2015-09-16 11 views
13

2 अजीब बातें होती हैं जब मैं पुश करने के लिए सफारी ViewController का प्रयास करें:SFSafariViewController को कैसे दबाएं?

  1. हो गया बटन के साथ इसका पता बार मेरी मार्गदर्शक बार के नीचे रख दिया गया है;

  2. प्रतिनिधि विधि safariViewControllerDidFinish: जब मैं वापस बटन दबाता हूं तो कॉल नहीं किया जाता है।

मुझे नहीं लगता कि एप्पल, तो यह behavoir का अनुमोदन होगा:

वहाँ एक रास्ता इन समस्याओं के बिना सफारी ViewController पुश करने के लिए है?

+3

यह दस्तावेज़ीकरण में नहीं बताया गया है, लेकिन आप केवल सामान्य रूप से दृश्य प्रस्तुत कर सकते हैं। आपको नेविगेशन नियंत्रक में धक्का नहीं देना चाहिए। – rckoenes

उत्तर

21

पेश pushViewController:animated: विधि के साथ एक SFSafariViewController धक्का मत करो, बजाय, presentViewController:animated:completion: विधि का उपयोग नेविगेशन पट्टी को छिपाने के लिए है।

सफारी व्यू कंट्रोलर मानक पुश एनीमेशन के साथ प्रस्तुत किया जाएगा।

+2

यह बहुत अजीब है। – beebcon

4

rckoenes के अलावा टिप्पणी केवल अन्य विकल्प मैं देख जब एक SFSafariViewController

import UIKit 
import SafariServices 

class ViewController: UIViewController { 
    @IBAction func openBrowser(sender: AnyObject) { 
     let safariViewController = SFSafariViewController(URL: NSURL(string: "http://your.url")!) 
     safariViewController.delegate = self 

     // hide navigation bar and present safari view controller 
     navigationController?.navigationBarHidden = true 
     navigationController?.pushViewController(safariViewController, animated: true) 
    } 
} 

extension ViewController: SFSafariViewControllerDelegate { 
    func safariViewControllerDidFinish(controller: SFSafariViewController) { 
     // pop safari view controller and display navigation bar again 
     navigationController?.popViewControllerAnimated(true) 
     navigationController?.navigationBarHidden = false 
    } 
} 
संबंधित मुद्दे