Another vote for screws, nails can lift/pop.
I'd spend a bit of time checking for, and evening up, levels too, before laying boards. It can be a pain in the bum and take a while but it is worth doing, and makes laying the boards themselves a tad easier, and the finish is both more secure and more attractive. If screwing, I'd also drill holes first to avoid boards splitting.
I've redone a few floors now. One, a group and floor, I removed the old ceramic tiles, dug out the floor, insulated, a new concrete foundation was pourded then I battened and boarded - at each stage, more and more precise levelling was done. You'll not get it 100% spot-on but as close as dam it. Worth it in the end (especially the insulation).
An upstairs floor was on old wooden joists. There, I laid a particle board sub floor over the joists and screwed boards to that. The levelling on that took patience as the old joists had developed 'character' over the years!
Edit: as I was drilling boards first, I had two cordless drills on the go, to avoid having to continually change bits. Then I'd hand tigthen screws the last bit just for the more accurate/sensitive feel. You can tell I'm no pro but I know it! I took my time and played safe because I'm not experienced, didn't know tricks of the trade.