John McCain only became a citizen as the result of a law passed several years after he was born, which had a post-facto provision in it, something that the Constitution specifically states is illegal (Article I, Section 9).
But not to worry, years later the courts ruled that the anti-post-facto provision in the Constitution only applied if the law involved attempted to deprive a person of his life, liberty or property. So John McCain was able to legally run for the Presidency but only as the result of some really narrow, and in all honesty, an activist court ruling, which was the one overriding reason why you NEVER saw or heard McCain make a single comment about the status of Obama's birth, something that apparently many in his party or on his running mate's staff, never got the message about.