No te pierdas ningún momento del torneo M15 en Turku. Aquí te contamos cómo seguir cada encuentro desde cualquier lugar:
Canales Oficiales
- Sitio Web Oficial del Torneo: Visita el sitio web oficial para obtener actualizaciones en tiempo real, horarios detallados y resultados instantáneos.
- Servicios de Streaming Deportivo: Plataformas como ESPN+ ofrecen transmisiones en vivo de muchos partidos del circuito ATP Challenger.
Sociales Media
tawilson/Birthday-Reminder-App<|file_sep|>/Birthday Reminder App/Birthday Reminder App/Model/Birthdays.swift
//
// Birthdays.swift
//
//
// Created by Thomas Wilson on 12/22/19.
//
import Foundation
struct Birthdays {
}
<|file_sep|># Birthday-Reminder-App
An iOS app to help you keep track of important birthdays and anniversaries.
<|repo_name|>tawilson/Birthday-Reminder-App<|file_sep|>/Birthday Reminder App/Birthday Reminder App/View/DatePickerViewController.swift
//
// DatePickerViewController.swift
//
//
// Created by Thomas Wilson on 12/23/19.
//
import UIKit
class DatePickerViewController: UIViewController {
}
<|file_sep|># Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'Birthday Reminder App' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for Birthday Reminder App
pod 'RealmSwift'
pod 'Realm'
pod 'Charts'
pod 'ActionSheetPicker-3.0', '~> 2.4.0'
target 'Birthday Reminder AppTests' do
inherit! :search_paths
# Pods for testing
end
target 'Birthday Reminder AppUITests' do
inherit! :search_paths
# Pods for testing
end
end
<|file_sep|># Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
target 'Birthday Reminder App' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'RealmSwift', '~>10.7'
pod 'Charts', '~4.1'
pod 'ActionSheetPicker-3.0', '~2.4'
end
target 'Birthday Reminder AppTests' do
inherit! :search_paths
# Pods for testing
end
target 'Birthday Reminder AppUITests' do
inherit! :search_paths
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '5.0'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
end
<|repo_name|>tawilson/Birthday-Reminder-App<|file_sep|>/Birthday Reminder App/Birthday Reminder App/Controller/TableViewController.swift
//
// TableViewController.swift
//
//
// Created by Thomas Wilson on 12/22/19.
//
import UIKit
class TableViewController: UITableViewController {
//MARK: - Properties
//MARK: - View Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addNewPerson))
navigationItem.rightBarButtonItem = addButton
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
NotificationCenter.default.addObserver(self,
selector: #selector(handleUpdate),
name: .didUpdateData,
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(handleDelete),
name: .didDeleteData,
object: nil)
loadData()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadData()
tableView.reloadData()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return people.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier:"cell", for:indexPath)
let person = people[indexPath.row]
cell.textLabel?.text = person.name
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let person = people[indexPath.row]
performSegue(withIdentifier:"detailSegue", sender:nil)
}
override func prepare(for segue: UIStoryboardSegue, sender:Any?) {
if segue.identifier == "detailSegue" {
guard let indexPath = tableView.indexPathForSelectedRow else {return}
let person = people[indexPath.row]
let destinationVC = segue.destination as! DetailViewController
destinationVC.person = person
print("Person Selected")
}
}
@objc func addNewPerson() {
performSegue(withIdentifier:"addPersonSegue", sender:nil)
}
@objc func handleUpdate(notification:NSNotification) {
loadData()
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
@objc func handleDelete(notification:NSNotification) {
loadData()
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
func loadData() {
people.removeAll(keepingCapacity:true)
people.append(contentsOf:BirthdayList.getBirthdays())
}
}
<|repo_name|>tawilson/Birthday-Reminder-App<|file_sep|>/Birthday Reminder App/Birthday Reminder App/Controller/AddPersonViewController.swift
//
// AddPersonViewController.swift
//
//
// Created by Thomas Wilson on 12/23/19.
//
import UIKit
class AddPersonViewController:UIViewController {
//MARK:- Properties
@IBOutlet weak var datePickerView:UIView!
@IBOutlet weak var datePicker:UIDatePicker!
@IBOutlet weak var nameTextField:UITextField!
@IBOutlet weak var relationshipTextField:UITextField!
@IBOutlet weak var dateOfBirthTextField:UITextField!
//MARK:- View Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
datePickerView.layer.cornerRadius=16
datePicker.maximumDate=Date()
datePicker.addTarget(self,
action:#selector(dateChanged(_:)),
for:.valueChanged)
let tapGesture=UITapGestureRecognizer(target:self,
action:#selector(hideDatePicker))
datePickerView.addGestureRecognizer(tapGesture)
let toolBar=UIToolbar()
toolBar.sizeToFit()
let doneButton=UIBarButtonItem(barButtonSystemItem:.done,
target:self,
action:#selector(donePressed))
toolBar.setItems([doneButton], animated:false)
toolBar.isUserInteractionEnabled=true
dateOfBirthTextField.inputAccessoryView=toolBar
}
override func touchesBegan(_ touches:Set
, with event:UIEvent?) {
super.touchesBegan(touches,event)
view.endEditing(true)
}
override func viewDidAppear(_ animated:Bool) {
super.viewDidAppear(animated)
nameTextField.becomeFirstResponder()
}
@objc func dateChanged(_ sender:UIPickerView) {
let dateFormatter=DateFormatter()
dateFormatter.dateFormat="MM/dd/yyyy"
dateOfBirthTextField.text=dateFormatter.string(from:datePicker.date)
print("Date Changed")
}
@objc func hideDatePicker() {
self.view.endEditing(true)
}
@objc func donePressed() {
self.view.endEditing(true)
}
@IBAction func savePressed(_ sender:UIBarButtonItem) {
guard let name=nameTextField.text else {return}
guard let relationship=relationshipTextField.text else {return}
guard let dateOfBirth=dateOfBirthTextField.text else {return}
let newPerson=Birthday(name:name,
relationshipToUser:"(relationship)",
dateOfBirth:dateOfBirth)
BirthdayList.save(person:newPerson)
NotificationCenter.default.post(name:.didUpdateData,
object:nil)
navigationController?.popViewController(animated:true)
}
}
<|repo_name|>tawilson/Birthday-Reminder-App<|file_sep|>/Birthday Reminder App/Birthday Reminder App/Model/BirthdayList.swift
//
// BirthdayList.swift
//
//
// Created by Thomas Wilson on 12/22/19.
//
import Foundation
class BirthdayList {
static let realm=try! Realm()
static func getBirthdays()->[Birthday] {
let birthdays=Array(realm.objects(Birthday.self))
print(birthdays)
return birthdays
}
static func save(person:Birthday) {
try! realm.write {
realm.add(person)
}
NotificationCenter.default.post(name:.didUpdateData,
object:nil)
}
static func delete(person:Birthday) {
try! realm.write {
realm.delete(person)
}
NotificationCenter.default.post(name:.didDeleteData,
object:nil)
}
}
<|file_sep|