Short Answer: If you are using a UINavigationController you can use it's visibleViewController so that you don't have to keep track of a separate boolean value.
Long Answer: Typically when I find myself calling reloadData inside of viewWillAppear, it is an indication that my View needs to observe some additional part of my Model. The problem with reloadData is that it is going to reload your entire table. Often times, you really only need to update a small part of the table. My strategy is normally to update only what I need to as it occurs regardless of whether or not a particular view is visible at that time. I know that is a pretty vague response...maybe some sample code of yours would help me be more specific...