我正在使用新的iOS 8 UISplitViewController.如果我在iPhone上运行它我有以下问题:
我的主视图控制器触发要显示的详细视图控制器.详细视图控制器在详细视图中将新视图控制器推送到UINavigationController堆栈.
现在我有问题,如果我想从新的视图控制器回弹到主视图控制器.
我怎样才能做到这一点
[self.navigatonController popToRootViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
不起作用.我想在iPhone上显示主视图控制器.所以我必须回顾两个观点.
我有什么想法可以做到这一点?
我想自定义一个NSMenu与NSMenuItems,所以做它看起来像苹果专业应用软件.
但是我如何定制NSMenu?没有绘制方法来改变外观.如果我将a设置NSView为a NSMenuItem,我可以设置背景颜色,但是我会忽略突出显示和菜单处理.此外,顶盖和底盖NSMenu不能定制.
我发现只有这个提示,但遗憾的是没有代码.

我会很乐意得到一些帮助!
我在后台做一些事情.我也尝试将对象写入标准用户默认值.从iOS 9开始,它就崩溃了.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// calling some methods in the background
// also save a value to the user defaults
NSDate *aDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:aDate forKey:@"date"]; // <-- crash: EXC_BAD_ACCESS
});
Run Code Online (Sandbox Code Playgroud)
我找不到问题.aDate不是零.我也尝试在主线程(来自后台线程)上执行setObject:但结果相同.
崩溃是零星的!我做错了什么?
这是堆栈跟踪:
崩溃:com.apple.root.background-qos EXC_BAD_ACCESS KERN_INVALID_ADDRESS位于0x0000000000000010
线程:崩溃:com.apple.root.background-qos 0 libobjc.A.dylib
0x0000000199b0dbd0 objc_msgSend + 16 1基础
0x0000000185ea1eb4 - [NSObject(NSKeyValueObserverNotification)willChangeValueForKey:] + 324 2 CoreFoundation
0x0000000185090994 _CFPreferencesSetValueWithContainer + 168 3 Foundation 0x0000000185eb9138 - [NSUserDefaults( NSUserDefaults)setObject:forKey:] + 56 4 AIR 0x00000001000f201c - [ServerSyncAgent syncUnsyncedEntities](ServerSyncAgent.m:212)5 libdispatch.dylib
0x000000019a2e97b0 _dispatch_call_block_and_release + 24 6 …