Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9009875
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T02:18:50+00:00 2026-06-16T02:18:50+00:00

I’ve installed Tapku Calendar library into my project using these steps: Tapku Calendar demo

  • 0

I’ve installed Tapku Calendar library into my project using these steps: Tapku Calendar demo does not work in xCode4/iOS5

Great, it imports just fine. No errors, nothing. But the calender does not show up, even those its running the loadView function. The toggle buttons appear [though i’m not using them in this case for toggling].

Here’s the important note:

This code (from the implementation):

NSLog(@"Toggle called!");

// If calendar is off the screen, show it, else hide it (both with animations)
NSLog(@"y and x = %f & %f", _calendar2.frame.origin.y, _calendar2.frame.origin.x);

NSLog(@"height and width = %f & %f", _calendar2.frame.size.height, _calendar2.frame.size.width);

is yielding :

2012-12-11 17:16:46.294 MyApp[29078:c07] Toggle called!
2012-12-11 17:16:46.295 MyApp[29078:c07] y and x = 0.000000 & 0.000000
2012-12-11 17:16:46.295 MyApp[29078:c07] height and width = 0.000000 & 0.000000

notice how the y and x are zero, even though i’ve set them to one. It’s like the _calender2 doesn’t save anything or something?

Here is the Class:

CalendarControlView.h:

#import <UIKit/UIKit.h>
#import "TKCalendarMonthView.h"

@interface CalendarViewController : UIViewController <TKCalendarMonthViewDelegate,TKCalendarMonthViewDataSource> {
    TKCalendarMonthView *calendar;
    struct CGRect cframe;
}

@property(strong, nonatomic) TKCalendarMonthView *calendar2;

@end

CalendarControlView.m

#import "CalendarViewController.h"


@implementation CalendarViewController

static int calendarShadowOffset = (int)-20;


@synthesize calendar2 = _calendar2;

#pragma mark -
#pragma mark View Lifecycle

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization.
        _calendar2 =    [[TKCalendarMonthView alloc] init];
        _calendar2.delegate = self;
        _calendar2.dataSource = self;
    }
    return self;
}

- (void)loadView {
    // Costruct the view because we aren't using a

    //int statusBarHeight = 20;
    CGRect applicationFrame = (CGRect)[[UIScreen mainScreen] applicationFrame];
    self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, applicationFrame.size.width, applicationFrame.size.height)];
    //self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    self.view.backgroundColor = [UIColor grayColor];

    // Add top left menu button to toggle calendar

    UIImage *menuButtonImage = [UIImage imageNamed:@"btn-calendar.png"];
    UIImage *menuButtonImageHighlighted = [UIImage imageNamed:@"btn-calendar-highlighted.png"];
    UIButton *menuButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [menuButton setImage:menuButtonImage forState:UIControlStateNormal];
    [menuButton setImage:menuButtonImageHighlighted forState:UIControlStateHighlighted];
    menuButton.frame = CGRectMake(0, 0, menuButtonImage.size.width, menuButtonImage.size.height);
    UIBarButtonItem *menuBarButton = [[UIBarButtonItem alloc] initWithCustomView:menuButton];
    [menuButton addTarget:self action:@selector(toggleCalendar) forControlEvents:UIControlEventTouchUpInside];
    self.navigationItem.leftBarButtonItem = menuBarButton;

    //[menuBarButton release];


    // Add view button to toggle calendar
    UIButton *toggleButton = [[UIButton alloc] initWithFrame:CGRectMake(50, 300, 220, 50)];
    toggleButton.backgroundColor = [UIColor darkGrayColor];
    toggleButton.titleLabel.font = [UIFont systemFontOfSize:12];
    toggleButton.titleLabel.textColor = [UIColor whiteColor];
    [toggleButton setTitle:@"Toggle Calendar" forState:UIControlStateNormal];
    [toggleButton addTarget:self action:@selector(toggleCalendar) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:toggleButton];
    //[toggleButton release];


    UIButton *toggleButton2 = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 220, 50)];
    toggleButton2.backgroundColor = [UIColor darkGrayColor];
    toggleButton2.titleLabel.font = [UIFont systemFontOfSize:12];
    toggleButton2.titleLabel.textColor = [UIColor whiteColor];
    [toggleButton2 setTitle:@"Toggle Calendar2" forState:UIControlStateNormal];
    [toggleButton2 addTarget:self action:@selector(toggleCalendar) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:toggleButton2];

    cframe = CGRectMake(1, 1, _calendar2.frame.size.width, _calendar2.frame.size.height);

    // Add Calendar to just off the top of the screen so it can later slide down
    _calendar2.frame = cframe;
    // Ensure this is the last "addSubview" because the calendar must be the top most view layer
    [self.view addSubview:_calendar2];
    [_calendar2 reload];
    [_calendar2 setHidden:NO];
    _calendar2.alpha = 1.0;
    NSLog(@"Done getting calender there!");

}

- (void)viewDidLoad {
    [super viewDidLoad];
}

// Show/Hide the calendar by sliding it down/up from the top of the device.
- (void)toggleCalendar {

    NSLog(@"Toggle called!");

    // If calendar is off the screen, show it, else hide it (both with animations)
    NSLog(@"y and x = %f & %f", _calendar2.frame.origin.y, _calendar2.frame.origin.x);

    NSLog(@"height and width = %f & %f", _calendar2.frame.size.height, _calendar2.frame.size.width);


}

#pragma mark -
#pragma mark TKCalendarMonthViewDelegate methods

- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {
    NSLog(@"calendarMonthView didSelectDate");
}

- (void)calendarMonthView:(TKCalendarMonthView *)monthView monthDidChange:(NSDate *)d {
    NSLog(@"calendarMonthView monthDidChange");
}

#pragma mark -
#pragma mark TKCalendarMonthViewDataSource methods

- (NSArray*)calendarMonthView:(TKCalendarMonthView *)monthView marksFromDate:(NSDate *)startDate toDate:(NSDate *)lastDate {
    NSLog(@"calendarMonthView marksFromDate toDate");
    NSLog(@"Make sure to update 'data' variable to pull from CoreData, website, User Defaults, or some other source.");
    // When testing initially you will have to update the dates in this array so they are visible at the
    // time frame you are testing the code.
    NSArray *data = [NSArray arrayWithObjects:
                     @"2011-01-01 00:00:00 +0000", @"2011-01-09 00:00:00 +0000", @"2011-01-22 00:00:00 +0000",
                     @"2011-01-10 00:00:00 +0000", @"2011-01-11 00:00:00 +0000", @"2011-01-12 00:00:00 +0000",
                     @"2011-01-15 00:00:00 +0000", @"2011-01-28 00:00:00 +0000", @"2011-01-04 00:00:00 +0000",
                     @"2011-01-16 00:00:00 +0000", @"2011-01-18 00:00:00 +0000", @"2011-01-19 00:00:00 +0000",
                     @"2011-01-23 00:00:00 +0000", @"2011-01-24 00:00:00 +0000", @"2011-01-25 00:00:00 +0000",
                     @"2011-02-01 00:00:00 +0000", @"2011-03-01 00:00:00 +0000", @"2011-04-01 00:00:00 +0000",
                     @"2011-05-01 00:00:00 +0000", @"2011-06-01 00:00:00 +0000", @"2011-07-01 00:00:00 +0000",
                     @"2011-08-01 00:00:00 +0000", @"2011-09-01 00:00:00 +0000", @"2011-10-01 00:00:00 +0000",
                     @"2011-11-01 00:00:00 +0000", @"2011-12-01 00:00:00 +0000", nil];


    // Initialise empty marks array, this will be populated with TRUE/FALSE in order for each day a marker should be placed on.
    NSMutableArray *marks = [NSMutableArray array];

    // Initialise calendar to current type and set the timezone to never have daylight saving
    NSCalendar *cal = [NSCalendar currentCalendar];
    [cal setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

    // Construct DateComponents based on startDate so the iterating date can be created.
    // Its massively important to do this assigning via the NSCalendar and NSDateComponents because of daylight saving has been removed
    // with the timezone that was set above. If you just used "startDate" directly (ie, NSDate *date = startDate;) as the first
    // iterating date then times would go up and down based on daylight savings.
    NSDateComponents *comp = [cal components:(NSMonthCalendarUnit | NSMinuteCalendarUnit | NSYearCalendarUnit |
                                              NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSSecondCalendarUnit)
                                    fromDate:startDate];
    NSDate *d = [cal dateFromComponents:comp];

    // Init offset components to increment days in the loop by one each time
    NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
    [offsetComponents setDay:1];


    // for each date between start date and end date check if they exist in the data array
    while (YES) {
        // Is the date beyond the last date? If so, exit the loop.
        // NSOrderedDescending = the left value is greater than the right
        if ([d compare:lastDate] == NSOrderedDescending) {
            break;
        }

        // If the date is in the data array, add it to the marks array, else don't
        if ([data containsObject:[d description]]) {
            [marks addObject:[NSNumber numberWithBool:YES]];
        } else {
            [marks addObject:[NSNumber numberWithBool:NO]];
        }

        // Increment day using offset components (ie, 1 day in this instance)
        d = [cal dateByAddingComponents:offsetComponents toDate:d options:0];
    }

    //[offsetComponents release];

    return [NSArray arrayWithArray:marks];
}

#pragma mark -
#pragma mark Memory Management

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)viewDidUnload {
    [super viewDidUnload];
}

- (void)dealloc {
    //[super dealloc];
}


@end

I’m running XCode 4.5.2 and iOS6

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T02:18:52+00:00Added an answer on June 16, 2026 at 2:18 am

    Move the lines:

        _calendar2 =    [[TKCalendarMonthView alloc] init];
        _calendar2.delegate = self;
        _calendar2.dataSource = self;
    

    from initWithNib... to the beginning of loadView, then add the calendar view to your controller’s view:

    - (void)loadView {
    
        [super loadView];
    
        // Costruct the view because we aren't using a xib file
    
        _calendar2 =    [[TKCalendarMonthView alloc] init];
        _calendar2.delegate = self;
        _calendar2.dataSource = self;
    
       [self.view addSubview:_calendar2];
    
       // rest of the method unchanged....
    

    Indeed, since you are not using a nib, then initWithNib... is not called; loadView is in charge then of creating the view.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

link Im having trouble converting the html entites into html characters, (&# 8217;) i
That's pretty much it. I'm using Nokogiri to scrape a web page what has
this is what i have right now Drawing an RSS feed into the php,
I am using the SimpleRSS gem to parse a WordPress RSS feed. The only
I have a French site that I want to parse, but am running into
I'm using v2.0 of ClassTextile.php, with the following call: $testimonial_text = $textile->TextileRestricted($_POST['testimonial']); ... and
I'm parsing an RSS feed that has an &#8217; in it. SimpleXML turns this
We're building an app, our first using Rails 3, and we're having to build
We are using XSLT to translate a RIXML file to XML. Our RIXML contains
I'm trying to convert HTML to plain text. I get many &\#8217; &\#8220; etc.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.