title: Calendar for iPhone
body: <p>I want to add a month view calendar for my iPhone project that will look identical to iPhone Calendar app. I have tried both <a href="https://github.com/klazuka/Kal" rel="nofollow">Kal Calendar</a> and <a href="https://github.com/devinross/tapkulibrary" rel="nofollow">Tapku</a>. The problem is that Tapku just doesn't seem to work(if says November 2011 and the date now is Monday 31st. According to my iPhone Calendar and Mac it's 28th. Even more: if I chose a day on every second launch of Tapku it just crashes with EXC_BAD_ACCESS in this method:</p>
  
  <pre><code>- (NSDate*) dateSelected{
  return [currentTile dateSelected];
  }
  </code></pre>
  
  <p>And in the Kal calendar I can't find the way to add my own events if the date has been chosen. So basically I want to override the </p>
  
  <pre><code>-(void)didSelectDate:(KalDate *)date
  </code></pre>
  
  <p>so that after choosing any date a new view controller will appear. In the header of my class I have</p>
  
  <pre><code>@interface MyKalViewController : UIViewController&lt;KalViewDelegate, UITableViewDelegate&gt;
  </code></pre>
  
  <p>All in all:
  can someone please tell me how to add my own didSelectDate method or override the existing one? Or suggest some other month view calendar.</p>
  
  <p>Thank you</p>
  
  <p><strong>edit:</strong></p>
  
  <p>Found the way to do it in Kal.</p>
  
  <p>Just add this</p>
  
  <pre><code>if ([self.delegate respondsToSelector:@selector(didSelectDate:)]) {
      [self.delegate performSelector:@selector(didSelectDate:) withObject:[date NSDate]];
  }
  </code></pre>
  
  <p>to</p>
  
  <pre><code>- (void)didSelectDate:(KalDate *)date
  </code></pre>
  
  <p>method in <strong>KalViewController.m</strong> file. Also don't forget to set delegate to self in the class that is using Kal:</p>
  
  <pre><code>kvc = [[KalViewController alloc]init];
  kvc.delegate = self;
  </code></pre>
  
  <p>And make a didSelectDate method in the same class.</p>
  
  <p>Hopefully it will help somebody once</p>
  
  <p>P.S. will add an answer once 8 hours are passed. Or you can just copypaste it and I'll pick your answer as best :p</p>