我需要在我的应用程序中添加一个左侧栏按钮项,看起来像系统后退按钮,但不是系统后退按钮,因为它将出现在视图控制器上,这是我的navController堆栈的唯一vc并执行我自己的代码.简单地写"Back"对我来说并不是很好,因为我还需要显示"<"箭头.有没有办法以编程方式创建这样的箭头,而不用该箭头制作图像?
我正在制作一个应用程序,并被要求在导航栏上放置一个徽标,但也会到达栏的边界之外,覆盖我的部分视图.这就是它应该如何放置(白色圆圈是徽标).
由于此应用程序中的视图控制器结构复杂,我想使用UINavigationController,但似乎它可能会使徽标更有问题.
这样做的好方法是什么?(因为由于奇怪的放置,显然将徽标作为导航栏的标题图像是不可能的)
我正在考虑将其作为keyWindow或navigationController.view的子视图.第一个可以导致我的应用被苹果拒绝吗?
在标题中,我想知道viewDidLoad
in 的"默认"实现是UIViewController
什么?它真的有用吗?如果在我的UIViewController's
子类中我写的也是重要的
-(void)viewDidLoad{
[super viewDidLoad];
/*custom code here*/
}
Run Code Online (Sandbox Code Playgroud)
要么
-(void)viewDidLoad{
/*custom code here*/
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)
?
PS这不是重复,在人们问他们何时应该调用[super viewDidLoad]的其他问题中,而我主要关注的是UIViewController的实现对它的作用.
我正在寻找解决我问题的方法很长时间,但是在我的案例中大多数都没用,因为几乎所有这些都是关于在IB中完成的错误,我在这个项目中没有使用.要点:
我有一个用Unity生成的XCode项目,我想在UnityViewController的顶部添加另一个带有UIWebView的视图控制器.由于Unity生成的项目不使用UINavigationController,我无法使用pushViewController并决定使用presentViewController:...而是.问题是,当我尝试这样做时,我只看到一个黑屏.如果我调用dismissViewController,我再次看到UnityViewController,这样就可以了.问题是,就像presentViewController没有添加我的vc的视图.我使用断点来查看是否正在调用viewDidLoad而不是.同样适用于 - (void)loadView和 - (UIView*)视图.这是我用来添加我的vc的代码:
WebViewController *webViewController = [[WebViewController alloc] init];
[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:webViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
我检查了webViewController是否为零而不是.rootViewController是UnityViewController,我100%肯定它.
这是Unity生成的代码,用于创建视图层次结构:
_mainDisplay = [[DisplayManager Instance] mainDisplay];
[_mainDisplay->window makeKeyAndVisible];
static bool _ClassInited = false;
if(!_ClassInited)
{
AddOrientationSupportDefaultImpl([UnityViewController class]);
_ClassInited = true;
}
_viewController = [[UnityViewController alloc] init];
_viewController.wantsFullScreenLayout = TRUE;
_viewController.view = _mainDisplay->view;
Run Code Online (Sandbox Code Playgroud)
后来用另一种方法:
[_mainDisplay->window addSubview: _mainDisplay->view];
_mainDisplay->window.rootViewController = _viewController;
[_mainDisplay->window bringSubviewToFront: _mainDisplay->view];
Run Code Online (Sandbox Code Playgroud)
黑屏可能是由于缺少UINavigationController造成的吗?
这可能与我的问题无关,但我也有一个菜单,我需要在我的应用程序中始终可见,并将其设为keyWindow的子视图.
PS我也尝试使用webvController设置为rootvc呈现UINavigation控制器,但我得到的只是一个带导航栏的黑屏.
PSS我在我的Unity项目中使用Vuforia,因此我无法在模拟器中运行它.
编辑:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view. …
Run Code Online (Sandbox Code Playgroud)