[Dev, iOS] segue로 넘겨 받은 데이터를 다시 전달하는 법
·
Dev/iOS
여러 블로그를 보아도 부모 뷰 -> 자식 뷰로 뷰 전환이 일어날 때 클래스 내에 override func prepare()를 활용해 데이터를 전달하는 방법만 있지,자식 뷰에서 부모 뷰로 다시 데이터를 받는 방법을 찾긴 어렵더군요. 대리자를 활용하여 데이터를 전달하면 되는데, 저도 초보 수준이라 구현이 쉽지 않았습니다. 해당 기능을 구현하는 데에 저 포함 여러 초보 개발자분들이 고생하실 것 같아서 한 번 작성해 봅니다. 먼저 prepare()와 segue 방식을 이용하여 부모 뷰에서 자식 뷰로 데이터를 전달하는 것 까지 구현이 완료된 기점부터 설명하니 이점 참고해주시길 바랍니다. (제가 설명하는 예시에서 homeVC는 부모 뷰를, bookMarkVC는 자식 뷰를 의미하고, 전달하는 데이터 형식은 문자열 배..
[Dev, iOS] iOS 앱에 카카오 애드핏(Kakao AdFit) 연동 및 구현하기
·
Dev/iOS
구글 애드몹을 연동해놓은 앱이 있는데 해당 앱이 국내 유저 기반이기도 하고, 카카오 애드핏 광고가 더 예쁘고 가지런해 보이더군요. 그래서 구글 애드몹을 버리고(?) 카카오 애드핏으로 갈아타기로 마음먹었습니다. 확실히 구글 애드몹이 사용자 수가 많아서인지 금방 구현하는 법을 찾을 수 있었는데 카카오 애드핏은 없어서 구현하는 김에 포스팅을 작성해보렵니다. 해당 포스팅은 카카오 애드핏 공식 GitHub 문서를 참고하여 작성하였습니다. https://github.com/adfit/adfit-ios-sdk/wiki/배너-광고-연동 1. 먼저 카카오 애드핏 사이트에 접속, 가입(카카오 계정 연동 가능) 해주시고, 아래 절차를 밟으시면 됩니다. 광고 단위명은 그냥 사용자 마음대로 설정하시면 돼요. * 현재 앱에서는 ..
[Dev, iOS] 네트워크 상태 확인하기
·
Dev/iOS
네트워크가 연결되어야만 제대로 작동하는 앱이 대부분이다. 유저가 앱을 클릭했을 때 인터넷 연결 상태가 어떤지 알아보려면, let connectedRef = Database.database().reference(withPath: ".info/connected")connectedRef.observe(.value, with: { snapshot in if snapshot.value as? Bool ?? false { print("connected") } else { print("not connected") }}) 적당한 위치에 추가하여 확인해볼 수 있다.
[Dev, iOS] ScrollView에서 아래로 당겨서 업데이트하기
·
Dev/iOS
받아온 데이터를 실시간으로 업데이트할때 쓰이는 메소드다. 아래 코드를 해당 VC에 작성한다.lazy var refreshControl: UIRefreshControl = { let refreshControl = UIRefreshControl() refreshControl.addTarget(self, action: #selector(handleRefresh(_:)), for: UIControl.Event.valueChanged) refreshControl.tintColor = UIColor.red return refreshControl }()스토리보드의 scrollView를 파일에 연결시키고 viewdidload() 아래에 작성해준다.참고로 필자는 scrollView의..
[Dev, iOS] 해당 URL로 이동하기
·
Dev/iOS
UIApplication.shared.open(URL(string: /* 여기에 url 주소를 입력해주세요. */)! as URL, options: [:], completionHandler: nil)UIButton을 만들고 해당 코드를 집어넣으면 된다.
[Dev, iOS] 코드로 custom color 사용하기
·
Dev/iOS
간혹 UI를 코드로 짜거나 storyboard로 해결하기 힘들 때에는 color Literal을 사용하면 된다. 다만 color Literal 같은 경우에는 타입이 UIColor라서 CGColor로 변경이 필요하다. let color = color Literal // xcode에서 입력 시 네모난 모양으로 변경되어 원하는 컬러를 선택할 수 있다.let customColor = color.cgColor // UIColor를 CGColor로 바꿔주기 + Xcode 13으로 넘어오면서 해당 코드가 막혀버렸지만, 코드를 작성할 때 #을 붙이면 다시 사용 가능하다.
[Dev, iOS] Google Admob 배너 위치 변경하기
·
Dev/iOS
애드몹 코드를 구글에서 제공하는 대로 가져다쓰면 문제가 딱 두 가지 존재한다. 첫번째는 bottomLayoutGuide가 사라졌다는 것, 그리고 코드로 UI를 짜지 않는 개발자들에게 애드몹 위치를 옮기는 것이 쉬운 일이 아니다. 먼저 bottomLayoutGuide로 인한 노랑 불 문제는 toItem: view.safeAreaLayoutGuide로 변경해주면 된다. func addBannerViewToView(_ bannerView: GADBannerView) { bannerView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(bannerView) view.addConstraints( [NSLayoutConstraint(item: ..
[Dev, iOS] iOS 14+ widget의 view를 바로바로 업데이트 하기
·
Dev/iOS
iOS widget을 구현한 지는 꽤 되었는데 변경 사항을 바로바로 업데이트 해주는 법을 몰라 for hourOffset in 0 ..< 5 { let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)! let entry = SimpleEntry(date: entryDate) entries.append(entry) } 해당 코드에서 hourOffset 범위를 0 ..< 2 이런 식으로 최대한 줄이거나 byAdding: .hour를 .second 이나 .minute로 바꿔 임시방편으로 코드를 짰는데 정말 바보 같은 짓이었다. 해결 방법은 위젯을 업데이트하고싶은 VC에서 widgetKit을 import하..
100두산
정상에서 보자 ✈️