refactor navigation controller

Signed-off-by: Wu Xudong <tikiet@gmail.com>