iOS 9 swift 2 ekeventviewcontroller 에서 done 버튼이 나타나지 않을 때

func tableView ( tableView : UITableView , didSelectRowAtIndexPath indexPath : NSIndexPath ) { let eventVC = EKEventViewController () eventVC . event = eventItems [ indexPath . row ] eventVC . allowsEditing = true eventVC . allowsCalendarPreview = true eventVC . delegate = self self . presentViewController ( eventVC , animated : true , completion : nil ) } 위와 같이 했는데 Done 버튼이 나타나지 않음 아래와 같이 네이게이션 컨트롤러를 추가하고 모달 스타일을 페이지 시트로 변경하니 잘 나옴 func tableView(tableView: UITableView , didSelectRowAtIndexPath indexPath: NSIndexPath ) { let eventVC = EKEventViewController () eventVC.event = eventItems[indexPath.row] eventVC.allowsEditing = true eventVC.allowsCalendarPreview = true eventVC. delegate = self let nav = UINavigationController (rootViewController: eventVC) nav.modalPresentationStyle = . PageSheet self.presentViewController(nav, animated: true , completion: nil) }

[Swift] Custom UIView의 UIButton Event를 상위 뷰인 UIViewController 에 전달하기

UIView를 필요에 따라 생성하여 사용한다. 예를 들어 UIView 하위에 UIButton 을 추가하여 사용할 때 UIButton 의 이벤트를 상위 뷰인 UIViewController 에서 사용할 경우가 생긴다. 이경우 어떻게 해야 할까? 이때 사용하는 방법이 Protocol 이다. 일단 Custom UIView에 Protocl 을 추가한다. protocol ShiftViewDelegate {     // 부모 뷰로 데이터 전달을 위한 델리게이트 메소드     func dayTouchEvent(touchButton: UIButton ) } 이제 UIView 클래스에 델리게이트 변수를 추가한다. class ShiftView: UIView {     // 부모 뷰로 데이터 전달을 위한 델리게이트     var delegate: ShiftViewDelegate ? 버튼 이미지에 메소드에 델리게이트 추가한다 func ButtonTouch(button: UIButton ) {         // 버튼 크기를 키움         button. transform = CGAffineTransformMakeScale ( 1.5 , 1.5 )         // 버튼 크기 원상복구         UIView . animateWithDuration ( 0.8 ) {             button. transform = CGAffineTransformMakeScale ( 1.0 , 1.0 )         }     ...

[swift] SkSpriteKit 을 이용한 ProgressBar 만들기

일단 프로그레스 바를 생성한다. 배경을 사용한 부분과 바를 사용할 부분으로 나누어 생성한다. 바 부분이 앞으로 나오면 된다. 여기서 중요한 것은 각 노드의 이름이다. 노드의 이름으로 상태를 표시하기 때문이다. func create_ProgressTimer() {         let progress = SKSpriteNode (color: SKColor . darkGrayColor (), size: CGSizeMake ( 100 , 25 ))         progress. anchorPoint = CGPointMake ( 0 , 0.5 )         progress. position = CGPointMake ( 10 , CGRectGetHeight ( self . frame )- 20 )         progress. name = "progress"         self . addChild (progress)         let bar = SKSpriteNode (color: UIColor.RedColor() , size: progress. size )         bar. position = CGPointMake ( 0 , 0 )         bar. anchorPoint = CGPointMake ( 0 , 0.5 )         bar. xScale = 1.0 ;         bar. zPosition = progress. zPosition + 0.1         bar. name ...

[swift] 시간을 이용한 랜덤함수

시간을 이용한 랜덤함수 보통 랜덤함수를 사용하면 같은 경우가 나타난다. 그래서 시간을 이용한 랜덤함수를 만들면 게임등에 사용할 수 있다. 터치한 시간이 매번 달라지니까... func RandomValue(count: Int ) -> Int {         // 수시로 변하는 수 얻기         let date = NSDate ()         let calendar = NSCalendar . currentCalendar ()         let calUnit: NSCalendarUnit = .CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond         let dateComp = calendar. components (calUnit, fromDate: date)         let timeValue = dateComp. hour + dateComp. minute + dateComp. second                  return timeValue % count     }

[swift] Scrolling Background 구현하기

스프라이트 키트를 사용해서 아래와 같이 하면 된다. import SpriteKit class GameScene: SKScene {     // 전역 선언     let backRoad1 = SKSpriteNode (imageNamed: "grass_bg_02" )     let backRoad2 = SKSpriteNode (imageNamed: "grass_bg_02" )          let backFlower1 = SKSpriteNode (imageNamed: "grass_bg_03" )     let backFlower2 = SKSpriteNode (imageNamed: "grass_bg_03" )          var deltaRoad: CGFloat = 120.0     var deltaFlower: CGFloat = 20.0          override func didMoveToView(view: SKView ) {         /* Setup your scene here */         // 배경         let imageField = UIImage (named: "grass_bg_01" )         let textureField = SKTexture (image: imageField!)         let backField = SKSpriteNode (texture: textureField, size: self . frame . ...

none of the valid provisioning profiles allow the specified entitlements 수정하는 방법

이미지
위젯을 추가하였다. 추가한 위젯을 등록하려는데 아래와 같은 에러가 났다. none of the valid provisioning profiles allow the specified entitlements 에러 수정하는 방법 위의 Code Signing Entitlements 의 내용을 비우면 된다. 이것 때문에 얼마나 많은 에러 코드와 싸움을 했는지 모른다.

whose view is not in the window hierarchy 오류 대처 방법

whose view is not in the window hierarchy 오류가 난다. EkEventEditViewController 가 ViewController 위에 생성이 되었다고 하면서 나는 오류이다. 혹시나 해서 ViewController 를 NavigationViewController 로 변경해도 마찬가지이다. UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;     while (topController.presentedViewController) {         topController = topController.presentedViewController;     } [topController presentViewController:addEventVC animated:YES completion:nil]; 위의 구문을 넣어주면 된다.