2016-08-17 59 views
0

我创建了一个应用程序,其中的数据显示在来自前一个视图的当前视图中。数据包括图像和三个标签。现在在当前视图中,我有一个“发送到观看”按钮,它也将数据存储到数据库,同时它将传输显示的数据以进行观察。我正在使用FMDB数据库来存储数据。我如何从iOS应用程序传输数据来观看应用程序。任何人都可以一步一步地解释我,因为我是IOS开发新手。我现在的故事板视图低于: my storyboard view将数据从iOS应用程序传输到快速查看应用程序

,当我跑我的应用程序,它当前页面低于 application running page

的最后一个视图我的源代码如下:

class TicketDetailViewController: UIViewController, WCSessionDelegate { 

var databasePath = NSString() 
var holding_Image: UIImage? 
var hold_ticketName: String = "" 
var hold_ticketDate: String = "" 
var hold_ticketTime: String = "" 
var session: WCSession! 


@IBOutlet weak var ticket_grey: UIImageView! 
@IBOutlet weak var cropped_frame: UIImageView! 
@IBOutlet weak var display_image: UIImageView! 
@IBOutlet weak var ticket_type_name: UILabel! 
@IBOutlet weak var ticket_date: UILabel! 
@IBOutlet weak var ticket_time: UILabel! 


override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    if WCSession.isSupported(){ 
     self.session = WCSession.defaultSession() 
     self.session.delegate = self 
     self.session.activateSession() 
    } 

    display_image.image = holding_Image 
    ticket_type_name.text = hold_ticketName 
    ticket_date.text = hold_ticketDate 
    ticket_time.text = hold_ticketTime 

    let filemgr = NSFileManager.defaultManager() 
    let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
    let docsDir = dirPaths[0] 
    var ticketDB: FMDatabase 

    databasePath = (docsDir as NSString).stringByAppendingPathComponent("tickets.sqlite") 

    if !filemgr.fileExistsAtPath(databasePath as String) 
    { 

     ticketDB = FMDatabase(path: databasePath as String) 
     if ticketDB.open() 
     { 

      let sql_stmt = "CREATE TABLE IF NOT EXISTS TICKETS (ID INTEGER PRIMARY KEY AUTOINCREMENT, IMAGE TEXT, TICKET_TYPE TEXT, DATE TEXT, TIME TEXT)" 
        if !ticketDB.executeStatements(sql_stmt) 
        { 
         print("Error: \(ticketDB.lastErrorMessage())") 
        } 
        ticketDB.close() 
        } else 
        { 

        print("Error: \(ticketDB.lastErrorMessage())") 
        } 
     } 

} 
    @IBAction func sendToWatch(sender: UIButton) { 

    let ticketDB = FMDatabase(path: databasePath as String) 
    if ticketDB.open() 
    { 

     let insertSQL = "INSERT INTO TICKETS (image, ticket_type, date, time) VALUES ('\(display_image.image!)','\(ticket_type_name.text!)', '\(ticket_date.text!)', '\(ticket_time.text!)')" 

     let result = ticketDB.executeUpdate(insertSQL,withArgumentsInArray: nil) 

     if !result 
     { 

      print("Error: \(ticketDB.lastErrorMessage())") 

     } else 
     { 

      let alt = PMAlertController(title: "Success!", description: "Your data is saved to Database!", image: UIImage(named: ""), style: .Alert) 

      alt.addAction(PMAlertAction(title: "OK!", style: .Default, action: { (ACTION) -> Void in 



      })) 

      self.presentViewController(alt, animated: true, completion: nil) 
      print(databasePath) 

     } 
    } 

} }

+0

请参考以下链接了解iphone之间流动IWATCH http://stackoverflow.com/questions/27030296/watchkit-ios-sending-data-between-watch-and-iphone –

+0

哎krutharth..I只需要在手表中显示数据。我不需要发回到iOS应用程序... –

+0

http://stackoverflow.com/questions/28024062/is-there-an-official-way-to-pass-data-between-apple-watch-and-iphone –

回答

0

您可以共享数据或使用应用程序组提交该数据。 转到目标,点击功能,你可以找到“应用程序组”,只需启用它并添加一个条目,如“group.com.development.xyzapp”,您可以通过它从iOS应用程序共享数据以观看,反之亦然。您可以通过以下代码保存iOS应用中的数据。现在

- (void)sendDataToWatch { NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.development.xyzapp"]; [userDefaults setObject:object forKey:@"itemone"]; [userDefaults setObject:object forKey:@"itemtwo"]; [userDefaults synchronize]; }

从你看,你可以得到这些数据。

希望这会有所帮助。

+0

你好manish,欣赏你的答案我想在手表中显示相同的数据,因为它显示在我的ios中...您能否参考我之前在我的问题 –

+0

'[userDefaults setObject:@“moviename”forKey:@“mymovie”]中附加的截图; [userDefaults setObject:@“dateobject”forKey:@“moviedate”]; [userDefaults setObject:@“ImageObject”forKey:@“moviepic”]; ' 现在,当您重新加载应用程序监视列表/屏幕时,您可以通过上述所有按键获取所有按键。 –

+0

嗨manish我已经把我的源代码的最后一个查看截图,我已经上载..你能告诉我我哪里出错了吗? –

相关问题