• Как использование базы данных SQLite в Swift 4.2?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    А заодно возтмите на вооружение БД от realm.io
    Ответ написан
    Комментировать
  • Приложение для ios на xamarin?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Дорогой друг, не становись очередным **внокодером на Xamarin.
    Раз уж только начинаешь в разработке и есть желание писать под iOS, то изучай сразу Swift и пиши его в Xcode.
    macOS установи через VMWare или установи macOS прямо на свой компьютер(хакинтош).
    Ведь Swift прекрасный язык, очень элегантный и быстрый.
    К тому же сейчас уже активно пишут на Swift на linux-серверах. Я из таких людей, состою в команде https://vapor.codes найди меня в их Discord чате под ником iMike
    Будь на гребне технологий, забей на C# и винду!
    Ответ написан
    Комментировать
  • С чего начать изучать Swift?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    В iBooks есть бесплатная официальная книжка от Apple, начинать нужно именно с нее https://itunes.apple.com/us/book/the-swift-program...
    Плюс включи обязательно Playground в Xcode, чтобы сразу пробовать код.
    Ответ написан
    Комментировать
  • Как запустить Swift на сервере?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    ИМХО смотреть стоит только на Vapor. Я из их команды, могу ответить на вопросы. Найди меня в их Discord чате по нику iMike
    Ответ написан
    Комментировать
  • Stripe Atlas для резидентов России - пора?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    А что бывает там что-то новенькое? Atlas он на то и Atlas, что может принимать заявки от стран стопятого мира, но по факту они их в 99.99% реджектят.
    Ответ написан
    Комментировать
  • Как снять скриншот в iOS программно?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Только с джейлом
    Ответ написан
  • Как выглядит indexPathForSelectedRow в swift 3?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.identifier == "showDetails" {
                if let destination = segue.destination as? TheChoiseOfShipTableViewController,
                   let cell = sender as? UITableViewCell,
                   let indexPath = tableView.indexPath(for: cell) {
                    destination.ships = self.ships[indexPath.row]
                }
            }
        }
    Ответ написан
    6 комментариев
  • Как передать данные между двумя view controllers, indexPathForSelectedRow swift3?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.identifier == "showDetails" {
                if let destination = segue.destination as? TheChoiseOfShipTableViewController,
                   let cell = sender as? UITableViewCell,
                   let indexPath = tableView.indexPath(for: cell) {
                    destination.ships = self.ships[indexPath.row]
                }
            }
        }
    Ответ написан
    1 комментарий
  • Как экспортировать иконки из sketch?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    На андроид в SVG экспортируйте. По поводу перекрашивания "на лету" вот ответ
    Ответ написан
    Комментировать
  • Как сделать жест на UILabel?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Задайте

    elem1.isUserInteractionEnabled = true
    Ответ написан
    Комментировать
  • Передать данные между контроллерами программно?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Если пользуешься storyboard, тогда передать данные можно через prepareForSegue

    Допустим у тебя есть NextViewController с переменной name: String
    class NextViewController: UIViewController {
        var name: String!
    }

    и тебе нужно в него передать имя, тогда в prepareForSegue есть два способа детектить переход на NextViewController:

    1. Если у нас имеется только один переход на NextViewController или их много с разных кнопок, но данные всегда одинаковые
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let dest = segue.destination as? NextViewController {
            dest.name = "Jessica"
        }
    }


    2. Если у нас имеются разные переходы на NextViewController и набор передаваемых данных различается
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let dest = segue.destination as? NextViewController {
            if segue.identifier == "action1" {
                dest.name = "Jessica"
            } else if segue.identifier == "action2" {
                dest.name = "Jessica"
                dest.sex = "female"
            }
        }
    }


    В случае если программно создаете переход, то еще проще все. Снова два варианта как достучаться до NextViewController:

    1. Он находится на storyboard
    let dest = storyboard?.instantiateViewController(withIdentifier: "NextViewController") as! NextViewController


    2. Или он не на storyboard...
    let dest = NextViewController(nibName:"NextViewController", bundle: nil)


    Дальше прикрепляем данные

    dest.name = "Jessica"

    И два варианта как открыть NextViewController:

    1. При наличии navigationController'a
    navigationController?.pushViewController(dest, animated: true)


    2. Просто модальным окном
    dest.modalPresentationStyle = .fullScreen
    dest.modalTransitionStyle = .coverVertical
    present(dest, animated: true, completion: nil)


    Чтобы обратно из второго в первый данные передавать, можно использовать delegate или notifications.

    Если делегаты
    protocol NextViewControllerDelegate {
        func callback(_ someString: String)
    }
    
    class NextViewController: UIViewController {
        var name: String!
        var delegate: NextViewControllerDelegate?
    
        func someMethod() {
            delegate?. callback("delegate callback")
        }
    }
    
    //Тут контроллер из которого открываем CustomViewController, нам помимо name нужно теперь еще задать delegate=self
    
    class HomeViewController: UIViewController, NextViewControllerDelegate {
       override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if let dest = segue.destination as? NextViewController {
                dest.name = "Jessica"
                dest.delegate = self
            }
        }
    
        //MARK: NextViewControllerDelegate
        func callback(_ someString: String) {
            print("got callback with string: \(someString)")
        }
    }


    Если notifications
    let kNotifNextViewControllerCallback = NSNotification.Name(rawValue: "kNotifNextViewControllerCallback")
    
    class NextViewController: UIViewController {
        var name: String!
    
        func someMethod() {
            NotificationCenter.default.post(name: kNotifNextViewControllerCallback, object: "notification text")
        }
    }
    
    //Тут HomeViewController из которого открываем CustomViewController, мы в нем будем слушать kNotifNextViewControllerCallback в метод gotNotification
    
    class HomeViewController: UIViewController {
        override func viewDidLoad() {
            super.viewDidLoad()
            NotificationCenter.default.addObserver(self, selector: #selector(gotNotification(notification:)), name: kNotifNextViewControllerCallback, object: nil)
        }
    
        deinit {
            NotificationCenter.default.removeObserver(self)
        }
    
        override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if let dest = segue.destination as? NextViewController {
                dest.name = "Jessica"
            }
        }
    
        //MARK: Notification observer
        func gotNotification(notification: Notification) {
            print("got notification with object: \(notification.object)")
        }
    }
    Ответ написан
    Комментировать
  • Почему автоматически не создается navigation bar с back button при show segue?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Руками делаете или в Interface Builder'e?
    Если в IB, то проблем быть не должно, там создаете NavigationController с ним вместе будет создан ViewController, который подцеплен к NC как root, далее просто show segue на другой VC от любой кнопки и все будет с Navigation Bar'ом.

    Если руками, то:
    let vc = UIViewController()
    let nav = UINavigationViewController(rootViewController: vc)
    present(nav, animated: true)

    Других вариантов нет, работает все отлично
    Ответ написан
    Комментировать
  • В чем проблема с xcode?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Я тоже почти ничего не понял, но у меня все нормально отображается, кликается, перемещается.
    Xcode8, macOS Sierra, MBPr early 2015 13"
    27093e8d16ba4871934ca408956f038c.png
    Ответ написан
    Комментировать
  • Какой есть плагин для Sketch для генерации "карты переходов между экранами приложения"?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Вообще обычно используют https://www.invisionapp.com и/или https://zeplin.io
    Ответ написан
    Комментировать
  • Как следить за событиями swift?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    У всего есть delegate и именно методы delegate дергаются при каких-либо событиях.

    По Mapkit за 5 секунд гуглится вот это stackoverflow.com/questions/5556977/determine-if-m...

    - (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
    - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated


    Для AVFoundation тоже есть delegate.
    Посмотреть какие методы есть у того или иного delegate можно нажав на него с зажатой клавишей Command.
    Ответ написан
    1 комментарий
  • Как парсить RSS в Swift?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Так же как в Objective-С, все абсолютно то же самое.

    Вот пример https://gist.github.com/MihaelIsaev/d05824952b486f...
    Ответ написан
    2 комментария
  • Можно ли на iOS по ссылке сохранять изображения, а не открывать?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Нельзя :)
    Ответ написан
    Комментировать
  • Пройдет ли такое приложение в App Store?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Пройдет, открытость/закрытость вашего API не имеет значения. Там речь об использовании недокументированный, считай закрытых, методов iOS SDK.
    Ответ написан
    1 комментарий
  • Сколько стоит разработка продукта, соответствующего по функциональности Mingly?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    Разработаю за $30k
    Ответ написан
    Комментировать
  • Objective C - что означает delegate: self?

    @iFamily
    Expert in Server-Side-Swift and iOS development
    self - это текущий класс, например это может быть текущий UIVIewController.
    Соответственно когда ты говоришь, что делегатом для UIActionSheet является self, это значит что в текущем классе нужно "прописать"/добавить методы из UIActionSheetDelegate и они будут отрабатывать.

    А вообще используйте уже UIAlertController, а то UIActionSheet устарел.
    Ответ написан
    Комментировать