Чтобы ответить на ваш первый вопрос - вы просто создаете новый UINavigationController
, как показано ниже:
UINavigationController navController = new UINavigationController(rootViewController);
Технически было бы возможно изменить корневой контроллер, изменив свойство ViewControllers
.Например:
navController.ViewControllers = new UIViewController[2] { newRootController, childController }
РЕДАКТИРОВАТЬ
Попробуйте добавить следующий конструктор в свой пользовательский UINavigationController
:
public CustomNavController(UIViewController rootViewController)
{
ViewControllers = new UIViewController[1] { rootViewController };
}
Я неконечно, если это лучший способ сделать это, но это сработает.